簡體   English   中英

在Networkx中具有一些預定義位置的Spring圖形布局

[英]Spring graph layout with some predefined positions in 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()

我得到的結果看起來像這樣:

在此處輸入圖片說明

因此,所有具有固定位置的節點都塞滿了0.5、0.5! 誰能告訴我為什么會這樣嗎?

您可能對其中一個安裝感到有些奇怪,或者正在運行的代碼有些不同。

完全復制並粘貼您的代碼(python2.7)之后,我得到: 在此處輸入圖片說明

因此,節點就是您指定的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM