具有依赖关系的 Graphviz 层次图
Graphviz hierarchical graph with dependencies
我正在尝试使用 Graphviz 生成文件系统图。输出应如下所示:
圆形顶点是目录,方形顶点是文件。黑色边缘表示文件系统元素之间的层次关系。红色边缘表示从一个文件到另一个文件的依赖关系。两种类型的边都是有向的。
我在 www.graphviz.org 上找到了创建层次图的示例,但它们只包含层次关系。这可以用 Graphviz 实现吗?如果没有,有没有其他软件可以使用?
没问题,给你。我不知道您将如何检测依赖关系,但假设您有一个方法,显示的简单着色属性将很好地突出显示它们。同样,确定某物是文件还是目录很容易,因此形状选择也很容易。
我按照我想象的顺序编写了代码,如果您从目录 A 向下钻取,但实际上节点、边和子图的顺序并不重要。
digraph X {
ranksep=.5
nodesep=.75
A [shape=circle]
{rank=same A}
A -> B
A -> C
B [shape=circle]
C [shape=square]
{rank=same; B C}
B -> D
B -> E
D [shape=square]
E [shape=square]
{rank=same D E}
D -> E [color=red]
C -> E [color=red]
}
我正在尝试使用 Graphviz 生成文件系统图。输出应如下所示:
圆形顶点是目录,方形顶点是文件。黑色边缘表示文件系统元素之间的层次关系。红色边缘表示从一个文件到另一个文件的依赖关系。两种类型的边都是有向的。
我在 www.graphviz.org 上找到了创建层次图的示例,但它们只包含层次关系。这可以用 Graphviz 实现吗?如果没有,有没有其他软件可以使用?
没问题,给你。我不知道您将如何检测依赖关系,但假设您有一个方法,显示的简单着色属性将很好地突出显示它们。同样,确定某物是文件还是目录很容易,因此形状选择也很容易。
我按照我想象的顺序编写了代码,如果您从目录 A 向下钻取,但实际上节点、边和子图的顺序并不重要。
digraph X {
ranksep=.5
nodesep=.75
A [shape=circle]
{rank=same A}
A -> B
A -> C
B [shape=circle]
C [shape=square]
{rank=same; B C}
B -> D
B -> E
D [shape=square]
E [shape=square]
{rank=same D E}
D -> E [color=red]
C -> E [color=red]
}