【发布时间】:2010-10-24 06:19:27
【问题描述】:
我正在尝试使用 graphviz 绘制 C 头文件之间的依赖关系图。
基本上,我正在做的是记录所有出现的#include 和条件(我的意思是#if 条件)。如果一个文件包含另一个文件,它将成为它在图中的父亲,并且潜在的条件是边缘标签。
我得到一个相当大的图表。问题源于始终水平的边缘标签(您无法更改它)并且似乎总是左对齐(我尝试过 labelloc 和 labeljust 但它没有改变任何东西。“居中”的正确方法是什么一条边的标签。
为了避免这个问题,我尝试将条件渲染为节点。如果 Ah 在 ANSI 条件下包含 Bh,则存在从 Ah 到 ANSI,然后从 ANSI 到 Bh 的链接。这看起来不错,但问题是如果 Ch 在相同条件下包含 Dh,我会看到从 Ah 到 ANSI 的链接, 一个从到 Ch 到 ANSI;一个从 ANSI 到 B.h,一个从 ANSI 到 D.h。问题是我不知道是 A.h 还是 C.h 包含 B.h 。有没有办法指定诸如通过节点之类的东西(在 ANSI 下的从 A.h 到 B.h 的链接可能会利用透明度。)
【问题讨论】:
-
您是否使用默认 rankdir (=TB?) 边缘标签有多长?
-
是的,我正在使用默认的 rankdir...当您组合了多个配置选项时,标签可能会很长。这也是一个问题(但我可以用 \l 或 \n .. 添加新行)
标签: c graphviz data-visualization dot