如何在GraphViz中设置基于记录节点的端口的样式?
我将这个简单的输入脚本输入到dot,以便从中创建SVG(SVG部分实际上并不重要):如何在GraphViz中设置基于记录节点的端口的样式?,graphviz,styling,dot,Graphviz,Styling,Dot,我将这个简单的输入脚本输入到dot,以便从中创建SVG(SVG部分实际上并不重要): graph-mygraph{ 节点[shape=record,fontsize=10,fontname=Arial]; rankdir=TB; ranksep=0.5; 秩=最大值; 样条曲线=真; 重叠=假; 明德主义=0.2; “d1”[style=solid,label=“{\N |{0 | 1}}]”; “d2”[style=solid,label=“{\N |{0 | 1 | 2 | 3}}”; “d
graph-mygraph{
节点[shape=record,fontsize=10,fontname=Arial];
rankdir=TB;
ranksep=0.5;
秩=最大值;
样条曲线=真;
重叠=假;
明德主义=0.2;
“d1”[style=solid,label=“{\N |{0 | 1}}]”;
“d2”[style=solid,label=“{\N |{0 | 1 | 2 | 3}}”;
“d1”:0--“d2”:0[颜色=蓝色,笔宽=3,工具提示=“d1:0--d2:0”,URL=“#”];
}
这将生成一个图形,其中d1
的端口0和d2
的端口0通过蓝色样条线连接:
好的
现在我需要为端口上色。例如:d2
的端口1应为绿色,d2
的端口2应为橙色。或者别的什么
我如何做到这一点
编辑1:节点周围的实心框架很重要。对于某些节点,我需要它为实心,对于其他节点,需要它为虚线。为您设置标签格式提供了很大的灵活性。此代码:
graph mygraph{
node [shape=record, fontsize=10, fontname=Arial];
rankdir=TB;
ranksep=0.5;
rank=max;
splines=true;
overlap=false;
mindist=0.2;
d1 [shape=none, margin=0, label=<
<table border="0" cellborder="1" cellspacing="0" cellpadding="4">
<tr><td colspan="2">d1</td></tr>
<tr><td port="0">0</td><td>1</td></tr>
</table>>];
d2 [shape=none, margin=0, label=<
<table border="0" cellborder="1" cellspacing="0" cellpadding="4">
<tr><td colspan="4">d2</td></tr>
<tr><td port="0">0</td><td bgcolor="green">1</td><td bgcolor="orange">2</td><td>3</td></tr>
</table>>];
d1:0 -- d2:0[color=blue, penwidth=3, tooltip="d1:0 -- d2:0", URL="#"];
}
graph-mygraph{
节点[shape=record,fontsize=10,fontname=Arial];
rankdir=TB;
ranksep=0.5;
秩=最大值;
样条曲线=真;
重叠=假;
明德主义=0.2;
d1[形状=无,边距=0,标签=<
d1
01
>];
d2[形状=无,边距=0,标签=<
d2
0123
>];
d1:0--d2:0[color=blue,penwidth=3,tooltip=“d1:0--d2:0”,URL=“#”];
}
生成此图形:
请注意使用
端口
属性来标识端口。看起来很有希望。为什么d2的端口0比其他端口宽?还是我错了?你是对的。我以PDF格式渲染并放大了它,它比边框宽。可能是
graph mygraph{
node [shape=record, fontsize=10, fontname=Arial];
rankdir=TB;
ranksep=0.5;
rank=max;
splines=true;
overlap=false;
mindist=0.2;
d1 [shape=none, margin=0, label=<
<table border="0" cellborder="1" cellspacing="0" cellpadding="4">
<tr><td colspan="2">d1</td></tr>
<tr><td port="0">0</td><td>1</td></tr>
</table>>];
d2 [shape=none, margin=0, label=<
<table border="0" cellborder="1" cellspacing="0" cellpadding="4">
<tr><td colspan="4">d2</td></tr>
<tr><td port="0">0</td><td bgcolor="green">1</td><td bgcolor="orange">2</td><td>3</td></tr>
</table>>];
d1:0 -- d2:0[color=blue, penwidth=3, tooltip="d1:0 -- d2:0", URL="#"];
}