gpt4 book ai didi

python - 如何在 pydot 中的两个子图之间添加边?

转载 作者:太空狗 更新时间:2023-10-30 02:49:43 24 4
gpt4 key购买 nike

有谁知道如何在 pydot 中的两个子图(簇)之间添加边?

callgraph = pydot.Dot(graph_type='digraph',fontname="Verdana")
cluster_foo=pydot.Cluster('foo',label='foo')
cluster_foo.add_node(pydot.Node('foo_method_1',label='method_1'))
callgraph.add_subgraph(cluster_foo)

cluster_bar=pydot.Cluster('bar',label='Component1')
cluster_bar.add_node(pydot.Node('bar_method_a'))
callgraph.add_subgraph(cluster_bar)

我试过:

callgraph.add_edge(pydot.Edge("foo","bar"))

但不起作用。它只是在初始图中创建了另外两个标记为“foo”和“bar”的节点,并在它们之间放置了一条边!

有人可以帮忙吗?

最佳答案

  • Graphviz 要求在 2 个集群的节点之间有一条边。
  • 添加图形参数 compound='true'。
  • 使用边缘参数 lhead= 和 ltail=。

所以你的代码会变成:

callgraph = pydot.Dot(graph_type='digraph', fontname="Verdana", compound='true')


cluster_foo=pydot.Cluster('foo',label='foo')
callgraph.add_subgraph(cluster_foo)

node_foo = pydot.Node('foo_method_1',label='method_1')
cluster_foo.add_node(node_foo)


cluster_bar=pydot.Cluster('bar',label='Component1')
callgraph.add_subgraph(cluster_bar)

node_bar = pydot.Node('bar_method_a')
cluster_bar.add_node(node_bar)


callgraph.add_edge(pydot.Edge(node_foo, node_bar, ltail=cluster_foo.get_name(), lhead=cluster_bar.get_name()))

关于python - 如何在 pydot 中的两个子图之间添加边?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6953957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com