[英]How to prohibit nodes merge in graphviz?
我使用graphviz繪制命令樹。 默認情況下,它合並具有相同名稱的節點。 如何禁止呢? 示例:我有一個代碼:
strict digraph 2 {
rankdir=LR;
SHOW_CONFIGURATION -> INTERFACES_eth;
SHOW_CONFIGURATION -> INTERFACES_vlan;
SHOW_CONFIGURATION -> INTERFACES_lag;
SHOW_CONFIGURATION -> INTERFACES_eth -> DESCRIPTION;
SHOW_CONFIGURATION -> INTERFACES_vlan -> DESCRIPTION;
SHOW_CONFIGURATION -> INTERFACES_lag -> DESCRIPTION;
SHOW_CONFIGURATION -> INTERFACES_eth -> IPV4;
SHOW_CONFIGURATION -> INTERFACES_vlan -> IPV4;
SHOW_CONFIGURATION -> INTERFACES_lag -> IPV4;
}
使用命令dot -Tsvg -o cli_tree.svg SHOW_CONFIGURATION.dot
的繪制結果:
但是我需要在不合並相同子命令節點的情況下繪制它,如下圖所示:
。
請幫助我知道如何繪制我的圖形。
默認情況下,graphviz使用節點ID作為標簽。 如果不同的節點需要具有相同的標簽,則必須明確定義標簽。
我還發現有時首先定義所有節點,然后定義這些節點之間的邊緣有時很有用。
strict digraph 2 {
rankdir=LR;
//Nodes
cfg [label="SHOW_CONFIGURATION"];
eth [label="INTERFACES_eth"];
vlan [label="INTERFACES_vlan"];
lag [label="INTERFACES_lag"];
node[label="DESCRIPTION"];
d1;d2;d3;
node[label="IPV4"];
i1;i2;i3;
// Edges
cfg -> {eth; vlan; lag;}
eth -> {d1; i1;}
vlan -> {d2; i2;}
lag -> {d3; i3}
}
在此示例中,指令node[...]
為該指令之后的所有新節點定義默認屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.