python - Spring 图形布局,在 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', '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()

我得到的结果如下所示:

enter image description here

所以所有位置固定的节点都挤在 0.5,0.5 附近!谁能告诉我为什么会这样?

最佳答案

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

准确复制并粘贴代码(python2.7)后,我得到:enter image description here

所以节点就是您指定的位置。

关于python - Spring 图形布局,在 networkx 中具有一些预定义的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33090483/

相关文章:

python - 展平mongodb字符串数组的根级别?

haskell - 功能图

python-igraph 从文件创建图形

Python GTTS错误: AttributeError: 'NoneType' object has no attribute 'group'

python - 导入 Pandas 时保留 KDB 长纪元时间

python - 异步迭代器定期滴答

python - 使用 Python 键盘解锁 Windows

javascript - Highcharts 更新打破了之前的布局

python - 如何加速随机梯度下降?

python - 从大字典中弹出 N 项的最快方法