Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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 networkx中具有一些预定义位置的Spring图形布局_Python_Python 3.x_Graph_Networkx - Fatal编程技术网

Python networkx中具有一些预定义位置的Spring图形布局

Python networkx中具有一些预定义位置的Spring图形布局,python,python-3.x,graph,networkx,Python,Python 3.x,Graph,Networkx,我正在使用networkx包和python3来布局一个简单的图形。如果我只是简单地使用spring布局,结果就不如它可能的好(如果手动布局的话)。所以我的想法是确定一些节点的位置。目前我使用以下代码: %matplotlib inline import matplotlib import numpy as np import matplotlib.pyplot as plt import networkx as nx G = nx.DiGraph() G.add_path(['H0', '

我正在使用networkx包和python3来布局一个简单的图形。如果我只是简单地使用spring布局,结果就不如它可能的好(如果手动布局的话)。所以我的想法是确定一些节点的位置。目前我使用以下代码:

%matplotlib inline

import matplotlib
import numpy as np
import matplotlib.pyplot as plt
import networkx as nx


G = nx.DiGraph()
G.add_path(['H0', 'S0', 'S1', 'S5', 'S6', 'S7', 'H3'], color='green')
G.add_path(['H5', 'S4', 'S3', 'S2', 'S1', 'S0', 'H1'], color='red')
G.add_path(['H2', 'S7', 'S6', 'S8', 'S3', 'S4', 'H4'], color='blue')

#explicitly set some positions to make the drawing nice
fixed_pos = {'S1':(-1,0),'S5':(0,0), 'S6':(1,0), 'S3':(0,1)}
fixed_nodes = fixed_pos.keys()
pos = nx.spring_layout(G, pos=fixed_pos, fixed = fixed_nodes, scale=3)

nx.draw_networkx(G,pos, font_size=10, font_family='sans-serif')
plt.show()
我得到的结果如下所示:


因此,所有具有固定位置的节点都被塞满在0.5,0.5周围!有人能告诉我为什么会发生这种情况吗?

您的一个安装有一些奇怪的地方,或者您正在运行的代码有点不同

完全复制和粘贴代码(python2.7)后,我得到:


因此,节点就是您指定的位置。

如果我使用networkx 1.9(Debian提供的最新版本),我会遇到问题中描述的错误。对于1.10版,它可以工作。谢谢你的回答,它帮助了我!奇怪-我在1.9.1中没有意识到这个问题。很高兴这有帮助。