【发布时间】:2013-05-12 23:46:42
【问题描述】:
我正在使用 Graphviz 2.30。标签的水平定位可行,但在少数情况下,需要修改角度。
例如,我在这里尝试了各种角度值,但没有任何效果:
ABB -> ABACUS[label="applied", fontname="Arial", fontsize=15, labelangle=110];
当使用 Graphviz digraph 时,如何显示与边缘一致(即平行)的标签。
由于保密协议,整个digraph 将不会发布。此外,旋转只会应用于少数标签。
【问题讨论】:
-
'labelangle' 仅适用于 headlabels 和 taillabels,而且它不旋转标签,而仅定义(与 labeldistance 一起)放置标签的位置(仍然是一条水平线)。角度 0 从沿边缘的起点/终点开始。带角度+/-标签可以在边缘上方或下方打印。距离为 0 时,角度无效。我也对让标签旋转以跟随边缘非常感兴趣,这仍然没有解决。
-
我感觉没有办法做到这一点。但是由于很少记录缺少功能(这将导致无限量的文档),因此很难就此写出权威的答案。除非你能指出在整个文档中都没有提到这样的事情,在代码库的任何晦涩的角落里也没有提到。
-
Graphviz 中的文本元素在定位时都被一个正则框包围。该算法非常努力地避免在边缘放置期间越过这些框边界。如果标签可以旋转,这些框会变得更大,从而对显示区域造成巨大压力。如果标签可以重叠边缘或节点,那么它们可以稍后在成像管道中旋转。
-
其实你可以在文档中找到它:github.com/ellson/graphviz/blob/master/doc/internal_todo.html "? - Allow text at a angle"