Graphviz 是一款開(kāi)源的圖形可視化軟件,圖可視化是一種將結(jié)構(gòu)信息表示為抽象圖和網(wǎng)絡(luò)圖的方法。Graphviz布局程序以簡(jiǎn)單的文本語(yǔ)言對(duì)圖形進(jìn)行描述,并以有用的格式制作圖表,例如用于網(wǎng)頁(yè)的圖像和 SVG;用于包含在其他文件中的 PDF 或 Postscript;或顯示在交互式圖形瀏覽器中。它在網(wǎng)絡(luò)、生物信息學(xué)、軟件工程、數(shù)據(jù)庫(kù)和網(wǎng)頁(yè)設(shè)計(jì)、機(jī)器學(xué)習(xí)以及其他技術(shù)領(lǐng)域的可視化界面中具有重要應(yīng)用。

使用教程
一、如何加入或合并 dot 中的某些邊緣路線?您可以嘗試運(yùn)行,dot -Gconcentrate=true或者您可以引入自己的虛擬節(jié)點(diǎn),繪制為要分割或連接邊緣的小圓圈:
digraph G {
yourvirtualnode [shape=circle,width=.01,height=.01,label=""]
a -> yourvirtualnode [arrowhead=none]
yourvirtualnode -> {b;c}
}

二、如何在 PDF 中生成圖形布局?
如果您的 Graphviz 版本支持 cairo/pango,則可以使用該-Tpdf標(biāo)志。不幸的是,這不能處理嵌入式鏈接。
如果您需要嵌入鏈接,或者沒(méi)有 cairo/pango,請(qǐng)創(chuàng)建 PostScript 輸出,然后使用從 PostScript 到 PDF 的外部轉(zhuǎn)換器。例如,dot -Tps | epsf2pdf -o file.pdf。請(qǐng)注意,URL 標(biāo)簽受到尊重,以允許可點(diǎn)擊的 PDF 對(duì)象。
如果您打算在某些文檔準(zhǔn)備系統(tǒng)(例如 pdflatex)中將圖形用作 PDF,則使用-Tps2而不是-Tps. 一般來(lái)說(shuō),如果你真的想要PDF輸出,也就是你想要一個(gè)-Tpdf標(biāo)志,-Tps2在轉(zhuǎn)換為PDF之前使用。
在下圖中,陰影節(jié)點(diǎn)將包含錯(cuò)誤輸出。

三、如何在neato中繪制多個(gè)平行邊?
當(dāng) splines 屬性為 false(這是默認(rèn)值)時(shí),將多邊繪制為簡(jiǎn)單彎曲邊的主軸。沒(méi)有嘗試避免中間節(jié)點(diǎn)。
當(dāng) splines=true 或 polyline 時(shí),多邊線將繪制為大致平行的樣條線或多段線。這依賴于沒(méi)有節(jié)點(diǎn)重疊。
四、如何對(duì)稱(平衡)樹布局?
當(dāng)一個(gè)樹節(jié)點(diǎn)有偶數(shù)個(gè)子節(jié)點(diǎn)時(shí),它不一定位于中間的兩個(gè)節(jié)點(diǎn)之上。如果你知道子節(jié)點(diǎn)的順序,一個(gè)簡(jiǎn)單的技巧就是引入新的、不可見(jiàn)的中間節(jié)點(diǎn)來(lái)重新平衡布局。連接邊也應(yīng)該是不可見(jiàn)的。
digraph G {
a -> b0
xb [label="",width=.1,style=invis]
a -> xb [style=invis]
a -> b1
{rank=same b0 -> xb -> b1 [style=invis]}
b0 -> c0
xc [label="",width=.1,style=invis]
b0 -> xc [style=invis]
b0 -> c1
{rank=same c0 -> xc -> c1 [style=invis]}
}

上一篇:門店管理軟件