Python加权有向图可视化

2024-06-12 02:06:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试可视化马尔科夫式的状态图。在

我尝试过通过直接点语言和networkx使用pygraphviz。在

我试过在matplotlib中使用pyplot。在

在这两种情况下,结果都很糟糕。在pyplot中,箭头只是较粗的线,而在pygraphviz中,标记的线排列得不好。在

我个人更喜欢networkx->;pygraphviz选项。下面是一个简短的代码片段,它说明了我的问题。在

G = nx.DiGraph()
G.add_edge(0,1,weight=0.5)
G.add_edge(1,2,weight=0.5)
G.add_edge(2,3,weight=0.5)
G.add_edge(3,4,weight=0.5)
G.add_edge(1,0,weight=0.5)
G.add_edge(2,1,weight=0.5)
G.add_edge(3,2,weight=0.5)
G.add_edge(4,3,weight=0.5)

for u,v,d in G.edges(data=True):
    d['label'] = d.get('weight','')

A = nx.drawing.nx_agraph.to_agraph(G)
A.layout(prog='dot')
A.draw('test.png')

产生 ugly graph labels

实际上我想要这样的东西 better graph

或者更好的是像这样的东西pretty transition diagram.

我本来会把照片嵌入的,但现在还不允许。:(

谢谢!在


Tags: networkxadd语言matplotlib可视化情况箭头graph