我正在将这个简单的输入脚本定义为record based nodes,以便从中创建一个SVG(SVG部分实际上并不重要):
graph mygraph{
node [shape=record, fontsize=10, fontname=Arial];
rankdir=TB;
ranksep=0.5;
rank=max;
splines=true;
overlap=false;
mindist=0.2;
"d1" [style=solid, label="{\N|{<0> 0|<1> 1}}"];
"d2" [style=solid, label="{\N|{<0> 0|<1> 1|<2> 2|<3> 3}}"];
"d1":0 -- "d2":0[color=blue, penwidth=3, tooltip="d1:0 -- d2:0", URL="#"];
}
这会生成一个图表,其中d1
的端口0和d2
的端口0通过蓝色样条线连接:
精细。
现在我需要着色端口。例如:d2
的端口1应为绿色,d2
的端口2应为橙色。或者其他什么。
我如何实现这一目标?
编辑1:节点周围的实心框架非常重要。我需要它为某些节点固定,为其他节点破灭。
答案 0 :(得分:7)
HTML-like labels为格式化标签提供了很大的灵活性。这段代码:
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="#"];
}
生成此图表:
请注意使用port
属性来标识端口。