[英]Add graphviz plot inside matplotlib
我正在使用networkx
可视化各种网络。 看一个简单的例子
graph = nx.DiGraph()
graph.add_edge("a", "b")
graph.add_edge("a", "a")
nx.draw(graph)
plt.show()
不幸的是, networkx
绘图不会呈现自循环。 我知道其他功能丰富的软件包,如GraphViz
及其实现pygraphviz
。 但是,这样的包不允许我自定义我的图(如子图、注释等)。 我可以用networkx
做所有这些,因为它可以用matplotlib
Axes 绘图。 这对于程序化操作和大量自定义非常方便。 有没有办法让GraphViz
网络绘图到matplotlib
?
我总是可以使用imshow
将GraphViz
创建的 PNG 嵌入到matplotlib
图中。 然而,它的结果是可怕的,几乎没有定制控制。
这似乎还不存在。 如果你想自己实现它,有几个选择。 如果您想将布局留给 Graphviz 而只是将形状和位置交给 Matplotlib,还有两个选项可以获取渲染所需的数据:
dot
)与-Tjson
option 一起使用,它似乎发出了所有必要的绘图数据,但我没有找到关于op
是什么的文档。 然后,您将此数据输入Axes
的Artist
(教程) 。 Matplotlib 也有一个关于如何绘制路径的教程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.