Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python加权有向图可视化_Python_Graph_Visualization_Networkx - Fatal编程技术网

Python加权有向图可视化

Python加权有向图可视化,python,graph,visualization,networkx,Python,Graph,Visualization,Networkx,我试图可视化马尔可夫式的状态图 我尝试过通过direct dot语言和networkx使用pygraphviz 我尝试在matplotlib中使用pyplot 在这两种情况下,结果都很糟糕。在pyplot中,箭头只是较粗的线条,而在pygraphviz中,标记的线条排列得不好 就我个人而言,我更喜欢networkx->pygraphviz选项。下面是一个简短的代码片段,说明了我的问题 G = nx.DiGraph() G.add_edge(0,1,weight=0.5) G.add_edge(1

我试图可视化马尔可夫式的状态图

我尝试过通过direct dot语言和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')
产生

事实上,我想要这样的东西

或者更好的是像这样的事情

我本来会把照片放进去的,但我还不被允许(


谢谢!

那么问题到底是什么呢?asker希望图表也能水平排列。我主要希望箭头和标签排列得更干净。目前它们几乎重叠,这使得图表很难阅读。你试过gephi吗?它有漂亮的显示。@rogdor我会试一试并报告回来!谢谢。那么问题是什么确切地说?asker也希望图表水平排列。我主要希望箭头和标签排列得更干净。目前它们几乎重叠,这使图表很难阅读。你试过gephi吗?它有漂亮的显示。@rogdor我会尝试一下,然后再报告!谢谢。