我一直在使用pydot项目来生成显示不同数据之间关系的图表。
import pydot
graph = pydot.Dot(graph_type='graph')
for i in range(3):
edge = pydot.Edge("Root", "Connection%d" % i)
graph.add_edge(edge)
conn_num = 0
for i in range(3):
for j in range(2):
edge = pydot.Edge("Connection%d" % i, "Sub-connection%d" % conn_num)
graph.add_edge(edge)
conn_num += 1
graph.write_png('graph.png')
运行上面的代码(取自here)会给我:
问题
有没有办法可以配置pydot实时工作,还是有像pydot这样的类似项目可以实时制作图表?可以让我在数据到达时添加新边缘的东西。
答案 0 :(得分:1)
Networkx是一个专门研究图形的python模块。对于可视化,它使用matplotlib。
在matplotlib中,您可以清除并重新绘制图像,也可以使用动画功能。清除和重新绘制对代码来说是微不足道的。我没有使用动画功能,但我希望以更复杂的代码为代价获得更快/更漂亮的结果。
networkx用法示例: how to draw directed graphs using networkx in python?(或者您可以使用实际文档:https://networkx.github.io/)
关于SE的matplotlib更新问题:Dynamically updating plot in matplotlib