[英]Draw graph in NetworkX
我正在嘗試在NetworkX中繪制任何圖形,但什么都沒有,甚至沒有錯誤:
import networkx as nx
import matplotlib.pyplot as plt
g1=nx.petersen_graph()
nx.draw(g1)
添加到最后:
plt.show()
import networkx as nx
import matplotlib.pyplot as plt
g1 = nx.petersen_graph()
nx.draw(g1)
plt.show()
從已調用plt.ion()
的交互式shell運行時, plt.ion()
plt.show()
。 這可能是很多例子中省略的原因。
如果您從一個腳本(如果這些命令plt.ion()
沒有被調用),該plt.show()
是必要的。 plt.ion()
適用於交互式會話,但不建議用於腳本 。
在ipython筆記本中,只需輸入魔法
%matplotlib inline
要么
%matplotlib notebook
您可以使用jupyter notebook輕松地使用networkx
圖進行繪圖。 見第一個例子。
或者,您可以使用Bokeh
繪制圖表,這會添加有用的功能。 包裝holoviews
使繪制帶有散景的圖形變得更加簡單。 它在鼠標懸停在節點上時添加了自動突出顯示和標簽顯示等功能。 但是,編輯顏色等似乎是一個問題。
%pylab inline
# `pylab notebook` # for interactive plots
import pandas as pd
import networkx as nx
import holoviews as hv
G=nx.Graph()
ndxs = [1,2,3,4]
G.add_nodes_from(ndxs)
G.add_weighted_edges_from( [(1,2,0), (1,3,1) , (1,4,-1) , (2,4,1) , (2,3,-1), (3,4,10) ] )
nx.draw(G, nx.spring_layout(G, random_state=100))
這里有散景和全息視圖的例子:
hv.extension('bokeh')
%opts Graph [width=400 height=400]
padding = dict(x=(-1.1, 1.1), y=(-1.1, 1.1))
hv.Graph.from_networkx(G, nx.layout.spring_layout).redim.range(**padding)
您應該嘗試一下並將其繪制在筆記本中以查看差異。
它添加以下工作正常:
import matplotlib.pyplot as plt
plt.show()
你的代碼。 我工作得很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.