Graphviz:更改子图簇内的节点间距
在Graphviz方面有经验但没有专家 我正在共享的示例代码和图像是一个更大的图的一部分,我将其拉出以使问题和示例更清晰 该图以秩分隔,并从左向右流动。在图像示例中,您可以看到三个列组和节点之间的空间很好,但我想在子图中收紧它们 我已经尝试了半打语法选项,但没有一个允许我缩小子图中节点之间的垂直距离,也没有其他地方 不确定如何将节点集仅隔离到子图集群 谢谢你的帮助Graphviz:更改子图簇内的节点间距,graphviz,Graphviz,在Graphviz方面有经验但没有专家 我正在共享的示例代码和图像是一个更大的图的一部分,我将其拉出以使问题和示例更清晰 该图以秩分隔,并从左向右流动。在图像示例中,您可以看到三个列组和节点之间的空间很好,但我想在子图中收紧它们 我已经尝试了半打语法选项,但没有一个允许我缩小子图中节点之间的垂直距离,也没有其他地方 不确定如何将节点集仅隔离到子图集群 谢谢你的帮助 如果确定要拧紧的这些节点位于同一列上,则可以使用表替换它们。在表中,您可以删除外边框并设置cellspacking属性以控制单元格
如果确定要拧紧的这些节点位于同一列上,则可以使用表替换它们。在表中,您可以删除外边框并设置cellspacking属性以控制单元格之间的距离 要为这些伪节点创建边,必须为每个单元格设置端口属性,然后将这些端口作为属性或
节点:端口
语法引用
您唯一的不便是无法使用语法node1->{pseudonode1;pseudonode2;node3}
为包含这些伪节点的多个节点创建边,因为头端口是边的前庭。因此,您必须单独声明这些边
使用此技术的示例如下所示:
digraph G {
graph [rankdir=LR, ranksep=.8, nodesep=.25];
edge [dir=forward, color=black];
node [shape=rectangle, fontsize=12, fontname="Times-Roman", height=.45];
{edge [color=firebrick1] v_Automobile ->{"Locational"; "Consumption"; "Governmental"};};
{edge [color=blue2] v_Body ->{"BioMetric"; "Networked IoT"; "Medical"};};
{edge [color=darkviolet] v_Citizen ->{"Associative"; "Conversaional"; "Governmental"; "Political"};};
{edge [color=lightskyblue] v_Consumer ->{"Consumption"; "Educational"; "Employment"; "Governmental"; "Locational"; "Medical"; "Transactional"};};
{edge [color=crimson] v_Home ->{"Consumption"; "Emanative"; "Locational"; "Networked IoT"};};
{edge [color=blue2] "BioMetric" -> tight:Camera;};
{edge [color=blue2] "BioMetric" -> tight:Apps;};
{edge [color=blue2] "BioMetric" ->{"CCTV"};};
{edge [color=crimson] "Consumption" ->"Smart Meter"};
{edge [color=blue2] "Medical" ->tight:Apps};
{edge [color=darkviolet] "Political" ->"Ballot"};
{edge [color=lightskyblue] "Transactional" -> tight:Browser};
{edge [color=lightskyblue] "Transactional" -> tight:Apps;};
{edge [color=lightskyblue] "Transactional" -> {"Reward Cards"; "Paypoint"};};
subgraph cluster_SmartPhone {label = "Smart Phone";
dirType=none;
tight [
shape=none
label=<
<table border="0" cellborder="1" cellspacing="10">
<tr>
<td port="Camera">Camera</td>
</tr>
<tr>
<td port="Apps">Apps</td>
</tr>
<tr>
<td port="Browser">Browser</td>
</tr>
<tr>
<td port="GPS">GPS</td>
</tr>
</table>
>
]
};
v_Automobile [label="Automobile",
penwidth=2,
color=firebrick1];
v_Body [label="Body",
penwidth=2,
color=blue2];
v_Citizen [label="Citizen",
penwidth=2,
color=darkviolet];
v_Consumer [label="Consumer",
penwidth=2,
color=lightskyblue];
v_Home [label="Home",
penwidth=2,
color=crimson];
}
有向图G{
图[rankdir=LR,ranksep=0.8,nodesep=0.25];
边[dir=向前,color=黑色];
节点[shape=rectangle,fontsize=12,fontname=“Times-Roman”,高度=0.45];
{edge[color=firebrick1]v_Automobile->{“地点”;“消费”;“政府”};};
{edge[color=blue2]v_Body->{“生物特征”;“网络物联网”;“医疗”};};
{edge[color=darkviolet]v_Citizen->{“联合的”、“对话的”、“政府的”、“政治的”};};
{edge[color=lightskyblue]v_Consumer->{“消费”、“教育”、“就业”、“政府”、“地方”、“医疗”、“交易”};};
{edge[color=crimson]v_Home->{“消费”、“散发”、“定位”、“联网物联网”};
{edge[color=blue2]“生物识别”->tight:Camera;};
{edge[color=blue2]“生物识别”->tight:Apps;};
{edge[color=blue2]“生物特征”->{“CCTV”};};
{edge[color=crimson]“消费”->“智能电表”};
{edge[color=blue2]“Medical”->tight:Apps};
{edge[color=darkviolet]“政治”->“选票”};
{edge[color=lightskyblue]“事务”->tight:Browser};
{edge[color=lightskyblue]“事务”->tight:Apps;};
{edge[color=lightskyblue]“交易”->{“奖励卡”;“支付点”};};
子图群集_智能手机{label=“智能手机”;
dirType=无;
紧的[
形状=无
标签=<
摄像机
应用程序
浏览器
全球定位系统
>
]
};
v_Automobile[label=“Automobile”,
笔宽=2,
颜色=耐火砖1];
v_Body[label=“Body”,
笔宽=2,
颜色=蓝色2];
v_Citizen[label=“Citizen”,
笔宽=2,
颜色=暗颜色];
v_消费者[label=“Consumer”,
笔宽=2,
颜色=浅天蓝];
v_Home[label=“Home”,
笔宽=2,
颜色=深红色];
}
结果:
digraph G {
graph [rankdir=LR, ranksep=.8, nodesep=.25];
edge [dir=forward, color=black];
node [shape=rectangle, fontsize=12, fontname="Times-Roman", height=.45];
{edge [color=firebrick1] v_Automobile ->{"Locational"; "Consumption"; "Governmental"};};
{edge [color=blue2] v_Body ->{"BioMetric"; "Networked IoT"; "Medical"};};
{edge [color=darkviolet] v_Citizen ->{"Associative"; "Conversaional"; "Governmental"; "Political"};};
{edge [color=lightskyblue] v_Consumer ->{"Consumption"; "Educational"; "Employment"; "Governmental"; "Locational"; "Medical"; "Transactional"};};
{edge [color=crimson] v_Home ->{"Consumption"; "Emanative"; "Locational"; "Networked IoT"};};
{edge [color=blue2] "BioMetric" -> tight:Camera;};
{edge [color=blue2] "BioMetric" -> tight:Apps;};
{edge [color=blue2] "BioMetric" ->{"CCTV"};};
{edge [color=crimson] "Consumption" ->"Smart Meter"};
{edge [color=blue2] "Medical" ->tight:Apps};
{edge [color=darkviolet] "Political" ->"Ballot"};
{edge [color=lightskyblue] "Transactional" -> tight:Browser};
{edge [color=lightskyblue] "Transactional" -> tight:Apps;};
{edge [color=lightskyblue] "Transactional" -> {"Reward Cards"; "Paypoint"};};
subgraph cluster_SmartPhone {label = "Smart Phone";
dirType=none;
tight [
shape=none
label=<
<table border="0" cellborder="1" cellspacing="10">
<tr>
<td port="Camera">Camera</td>
</tr>
<tr>
<td port="Apps">Apps</td>
</tr>
<tr>
<td port="Browser">Browser</td>
</tr>
<tr>
<td port="GPS">GPS</td>
</tr>
</table>
>
]
};
v_Automobile [label="Automobile",
penwidth=2,
color=firebrick1];
v_Body [label="Body",
penwidth=2,
color=blue2];
v_Citizen [label="Citizen",
penwidth=2,
color=darkviolet];
v_Consumer [label="Consumer",
penwidth=2,
color=lightskyblue];
v_Home [label="Home",
penwidth=2,
color=crimson];
}