gpt4 book ai didi

图形可视化/点 : can the distance between two nodes be set individually?

转载 作者:行者123 更新时间:2023-12-03 22:21:10 25 4
gpt4 key购买 nike

我正在尝试使用 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 ;
}
}

编辑:我应该注释掉导致不想要的结果而不是导致预期结果的行(我计划附加两个 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 ;
}
}

最佳答案

有几个“图形”属性可以控制您的需要。
垫,rankep,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 ;
}
}

关于图形可视化/点 : can the distance between two nodes be set individually?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22167978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com