ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python – pydot中两个子图之间的边缘

2019-06-21 08:55:03  阅读:258  来源: 互联网

标签:python graph graphviz edge pydot


有谁知道如何在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,graph,graphviz,edge,pydot
来源: https://codeday.me/bug/20190621/1253679.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有