簡體   English   中英

如何禁止節點在graphviz中合並?

[英]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的繪制結果: result_pic

但是我需要在不合並相同子命令節點的情況下繪制它,如下圖所示:

我想看什么

請幫助我知道如何繪制我的圖形。

默認情況下,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM