[英]Dot language with concentrate=true confusing the graph
我繪制了一個簡單的圖形,如下所示,發現了彩色顯示的不同行為。
digraph G {
concentrate=true
edge [dir=none]
a -> b [color=red]
b -> c
c -> b
b -> a
}
圖形顯示a和b之間的邊緣為紅色>>這是正確的。
但是當我只是將其更改為
digraph G {
concentrate=true
edge [dir=none]
a -> b
b -> c
c -> b
b -> a [color=red]
}
這次,邊緣a和b的顏色是黑色,而不是我想要的紅色。 有人可以找出我在這里做錯了什么嗎?
由於問題中的代碼在兩個邊緣之間繪制一個邊緣,因此繪制的最后一個邊緣的顏色為贏。 點的布局引擎可以從下到上或從右到左工作。 這意味着繪制的最后一條邊是列出的第一個邊。
點繪制有向圖。 可以使用dir=none
模擬無向圖,但是只有一條邊:
digraph G {
concentrate=true
edge [dir=none]
a -> b [color=red]
b -> c
}
請記住, dir=none
並不是主要用作顯示屬性。 如果目標是兩個有向邊,則dir=both
是更好的選擇:
digraph G {
concentrate=true
edge [dir=both]
a -> b [color="red:black"]
b -> c [color="black:black]
}
從概念上將圖形建模與顯示屬性分開是很有用的。 Dot並不是特別容易,因為它鼓勵內聯樣式信息。 但是,分離問題的代價可能會在調試時間內得到回報。
您可以使用端口來防止邊緣重疊:
digraph G {
concentrate=true
edge [dir=none]
a -> b
b -> c
c -> b
b:nw -> a:se [color=red]
}
另請參閱: https : //graphviz.gitlab.io/_pages/doc/info/lang.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.