2009-09-25 100 views
19

我正在使用Graphviz来绘制一些图。我在节点上使用标签,我可以放入"\n"以强制它将标签分成两行。有没有办法让Graphviz(或我正在使用的dot)自动看到它应该分割一些节点标签,并让它自己自动做出最佳选择?Graphviz中的自动多行标签?

回答

10

我也搜索过这个,但我不认为这是可能的当前版本。目前的“解决方案”是编写代码,根据节点之间的最小距离(如果我没有弄错的话,属性为nodesep),每隔几个字符就会自动添加“\ n”。

+3

您还可以使用类似HTML的标签(引述'<...>的''而不是“...”'),它不会自动换行,但给出了比布局的\ n更大的控制权。也许这与对系统图形库中呈现的呈现字符串的长度的估计结合起来可能会推断出在哪里放置这些中断? – 2011-02-01 23:54:49

7

是的,类似于HTML的标签(< ...>)支持
标签,使用该标签可以打破线条。例如。

"A" -> "B" 
[label = <1. <br/> 
2. <br/> 
3. <br/> 
4. <br/> 
.... <br/> 
> color="blue" style="dashed"]; 
+3

-1这不回答这个问题。此外它比当前使用的方法更糟糕(两个字符比五个更好)。 – 2013-10-24 10:48:08

+4

它没有回答这个问题,但提供了一个很好的解决方法,所以我给这个+1 – Pascal 2016-05-12 09:49:30