lin*_*and 6 dot flowchart graphviz
我正在尝试使用dot(版本2.28.0)来制作我的源代码的流程图.为此,我希望图形由子图组成,其中每个子图表示代码库中的源文件.在每个子图的顶部,应该有文件名作为节点,以视觉上容易区分的方式(即深蓝色背景上的粗体,白色文本).文件名节点下面应该是按照调用顺序表示该文件中的例程流的节点.
我现在的问题是我希望"文件名节点"和"例程节点"之间的距离小于各个"例程节点"之间的距离,而且,之间不应该有箭头.
我尝试将minlen属性用于将"文件名节点"连接到第一个"例程节点"的边缘,但是当我将其设置为低于1.0的值时,这两个节点彼此相邻而不是堆叠.
有没有办法让前两个节点比另外两个节点更接近,但是顶部/底部是否定向?
digraph "prog.c"
{
edge [fontname="FreeSans",fontsize="12",labelfontname="FreeSans",labelfontsize="10"];
node [fontname="FreeSans",fontsize="14",shape=record,height=0.2];
compound=true;
subgraph cluster_main {
Node1_0 [label="main.c", shape=folder, fontcolor="white", style=filled, fillcolor="#00008b"];
Node1_1 [label="routine1()"];
Node1_2 [label="routine2()"];
edge [color="transparent", minlen="0.5"]; // stacking not ok
// edge [color="transparent", minlen="1.0"]; // stacking ok
Node1_0 -> Node1_1 ;
edge [color="black", minlen="1.0"];
Node1_1 -> Node1_2 ;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我应该注释掉导致不良结果的线而不是导致所需结果的线(我原本计划附加两个png用于澄清,但我不允许这样做作为新手); 所以这里是我实际想要修改的代码,前两个节点的距离与最后两个节点的距离不同(较小).
digraph "prog.c"
{
edge [fontname="FreeSans",fontsize="12",labelfontname="FreeSans",labelfontsize="10"];
node [fontname="FreeSans",fontsize="14",shape=record,height=0.2];
compound=true;
subgraph cluster_main {
Node1_0 [label="main.c", shape=folder, fontcolor="white", style=filled, fillcolor="#00008b"];
Node1_1 [label="routine1()"];
Node1_2 [label="routine2()"];
//edge [color="transparent", minlen="0.5"]; // stacking not ok
edge [color="transparent", minlen="1.0"]; // stacking ok
Node1_0 -> Node1_1 ;
edge [color="black", minlen="1.0"];
Node1_1 -> Node1_2 ;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 8
有一些"图形"属性可以控制您的需求.pad,ranksep,nodesep
另外,我增加了你的节点大小,但仅限于我自己的易用性......
digraph "prog.c"
{
graph [pad=".75", ranksep="0.25", nodesep="0.25"];
node [fontname="FreeSans",fontsize="14",shape=record,width=2, height=.5];
edge [fontname="FreeSans",fontsize="12",labelfontname="FreeSans",labelfontsize="10"];
compound=true;
subgraph cluster_main {
Node1_0 [label="main.c", shape=folder, fontcolor="white", style=filled, fillcolor="#00008b"];
Node1_1 [label="routine1()"];
Node1_2 [label="routine2()"];
edge [color="transparent", minlen="0.5"]; // stacking not ok
// edge [color="transparent", minlen="1.0"]; // stacking ok
Node1_0 -> Node1_1 ;
edge [color="black", minlen="1.0"];
Node1_1 -> Node1_2 ;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8701 次 |
| 最近记录: |