Graphviz 图中定义了“更多”;“违约”;
需要绘制一个复杂的图形,其中将有3种类型的边和几个预定义的节点类型 是否可以定义更多(例如,不仅一个默认)“边缘类型”(或节点类型)供以后使用 意思是:Graphviz 图中定义了“更多”;“违约”;,graphviz,Graphviz,需要绘制一个复杂的图形,其中将有3种类型的边和几个预定义的节点类型 是否可以定义更多(例如,不仅一个默认)“边缘类型”(或节点类型)供以后使用 意思是: edge [colorscheme=paired12, color=8, fontsize=11, fontname="Arial narrow"]; edge2 [colorscheme=paired12, color=3, fontsize=11, fontname="Arial narrow", style=bold]; edge3 [c
edge [colorscheme=paired12, color=8, fontsize=11, fontname="Arial narrow"];
edge2 [colorscheme=paired12, color=3, fontsize=11, fontname="Arial narrow", style=bold];
edge3 [colorscheme=paired12, color=5, fontsize=14, fontname="Arial narrow"];
node1 -> node2; /* will use the default edge definition from the above */
node2 -> node3 [edgetype=edge2]; /* will use the second edge definition */
node2 -> node4 [edgetype=edge3]; /* and so on... */
上述ofc不正确-仅用于解释…不,这是不可能的 我经常按边缘定义的类型对其进行分组,并在每个组之前重新定义默认值。例如:
// type 1 edges
edge [colorscheme=paired12, color=8, fontsize=11, fontname="Arial narrow"];
n1 -> n2;
n3 -> n4;
...
// type 2 edges
edge [colorscheme=paired12, color=3, fontsize=11, fontname="Arial narrow", style=bold];
n10 -> n11;
...
// type 3 edges
edge [colorscheme=paired12, color=5, fontsize=14, fontname="Arial narrow"];
...
另一种更复杂的可能性是使用像
gvpr
这样的工具,它允许您操作图形,并在此时添加边属性。使用gvpr
很简单,如果您了解了基本知识:
input.dot
digraph test {
node1 -> node2[label="test 1"]; /* will use the default edge definition from the above */
node2 -> node3 [label="test 2", edgetype="edge2"]; /* will use the second edge definition */
node2 -> node4 [label="test 3", edgetype="edge3"]; /* and so on... */
}
filter.gvpr
E {
color="red";
fontsize=11;
fontname="Arial narrow"
}
E[edgetype == "edge2"] {
color="green";
fontsize=11;
fontname="Arial narrow";
style="bold"
}
E[edgetype == "edge3"] {
color="blue";
fontsize=14;
fontname="Arial narrow"
}
指挥
gvpr-c-f filter.gvpr-o output.dot input.dot
digraph test {
node1 -> node2[label="test 1"]; /* will use the default edge definition from the above */
node2 -> node3 [label="test 2", edgetype="edge2"]; /* will use the second edge definition */
node2 -> node4 [label="test 3", edgetype="edge3"]; /* and so on... */
}
将生成输出.dot
文件:
digraph test {
node1 -> node2 [color=red,
fontname="Arial narrow",
fontsize=11,
label="test 1"];
node2 -> node3 [color=green,
edgetype=edge2,
fontname="Arial narrow",
fontsize=11,
label="test 2",
style=bold];
node2 -> node4 [color=blue,
edgetype=edge3,
fontname="Arial narrow",
fontsize=14,
label="test 3"];
}
不客气,请看更多(复杂)的示例,了解如何使用gvpr
。