GraphViz边缘标签

LB4*_*B40 5 c data-visualization dot graphviz

我正在尝试使用graphviz绘制C头文件之间的依赖关系图.

基本上,我正在做的是记录所有出现的#include和条件(我的意思是#if条件).如果一个文件包含另一个文件,它将成为图中的父亲,潜在条件是边缘标签.

我获得了一个非常大的图表.问题源于边缘标签总是水平的(你不能改变它)并且似乎总是左对齐(我已经尝试过labelloc和labeljust但它没有改变任何东西."中心"的正确方法是什么一条边的标签.

为了避免这个问题,我尝试将条件渲染为节点.如果Ah在ANSI条件下包含Bh,则存在从Ah到ANSI然后从ANSI到Bh的链接.看起来没问题,但问题是如果Ch在相同条件下包含Dh,我会看到从Ah到ANSI的链接,一个从Ch到ANSI; 一个从ANSI到Bh,一个从ANSI到Dh.问题是我不知道是否包含Bh的Ah或Ch.有没有办法指定像通过节点的东西(从Ah到Bh的链接,在ANSI下可能利用透明度.)

Paw*_*icz 4

labelloc 和 labeljust 对于边缘来说没有意义。看这里,它分别表示“GC”表示图、簇或“N”表示节点。

但是,您可以考虑带有标签的每个条件生成唯一的节点。然后会有多个节点具有不同的“点 ID”,但具有相同的标签(条件的文本),因此很清楚A.h是否C.h包含B.h。我想您会对结果感到满意,因为您已经说过它看起来不错。

祝你好运!