使用Graphviz时,按边显示标签

使用Graphviz时,按边显示标签,graphviz,labels,Graphviz,Labels,我使用的是Graphviz 2.30。标签的水平定位是可行的,但在少数情况下,需要修改角度 例如,我在这里尝试了各种角度值,但没有任何效果: ABB -> ABACUS[label="applied", fontname="Arial", fontsize=15, labelangle=110]; 当使用Graphviz有向图时,如何显示与边缘成直线(即平行)的标签 由于保密协议,整个有向图将不会发布。此外,旋转将仅应用于少数标签 我读过类似的文章,比如or(或者关于对齐的文章),但是没

我使用的是Graphviz 2.30。标签的水平定位是可行的,但在少数情况下,需要修改角度

例如,我在这里尝试了各种角度值,但没有任何效果:

ABB -> ABACUS[label="applied", fontname="Arial", fontsize=15, labelangle=110];
当使用Graphviz
有向图时,如何显示与边缘成直线(即平行)的标签

由于保密协议,整个
有向图
将不会发布。此外,旋转将仅应用于少数标签


我读过类似的文章,比如or(或者关于对齐的文章),但是没有任何关于我的问题的帮助。

编辑:另一个答案发现了一个现在存在的选项,可以将文本与边缘对齐

您的最佳选择可能是将图形导出为
SVG
,并使用
Illustrator
Inkscape
对其进行微调。这仅在生成一些图形时才实用

我经常需要调整
Graphviz
Gephi
的输出;他们给了我一个很好的起点

使用允许您指定属性。生成pdf时使用的是
lblstyle
的值

可以这样指定平行标签:

digraph G {
    edge [lblstyle="above, sloped"];
    a -> b [label="ab"];
    b -> c [label="bc"];
    c -> a [label="ca"];
}
生成pdf的步骤

$ dot2tex --tikzedgelabel file.dot > file.tex
$ pdflatex file.tex
结果是


“labelangle”仅适用于前照灯和尾灯标签,而且它不旋转标签,只定义(连同标签距离)放置标签的位置(仍然是一条水平线)。角度0从起点/终点沿边缘移动。带角度+/-的标签可在边缘上方或下方打印。距离为0时,角度无效。我也非常感兴趣的是让标签沿着边缘旋转,这一点在afaik还没有解决。我感觉没有办法做到这一点。但是由于缺少特性很少有文档记录(这将导致无限量的文档记录),因此很难就此写出权威性的答案。除非您可以指出,在整个文档中,或者在代码库的任何模糊角落中,都没有提到类似的内容。Graphviz中的文本元素在定位过程中都使用常规框进行绑定。该算法非常努力地避免在边缘放置期间跨越这些框边界。如果标签可以旋转,这些盒子将变得更大,从而对显示区域造成巨大压力。如果标签可以重叠边缘或节点,那么它们可以稍后在成像管道中旋转。实际上,您可以在文档中找到:“?-允许文本以一定角度”不幸的是,在生成图形时,您必须知道所有标签的角度;OP希望以任何角度显示其标签与边缘平行。@Galax感谢您的评论。我修正了答案。很好的发现-这是
dot
的一个方便的特性,我以前没有注意到它(或者它是新的)。