使用 NetworkX 在 Jupyter Notebook 上显示有向图
Using NetworkX to show a digraph on Jupyter Notebook
我正在尝试使用 networkx 包在 python 中绘制一个随机生成的锦标赛,但是 jupyter notebook 在 运行 上没有显示任何内容,我的图表已正确加载,因为我可以调用边数等,只是绘图部分不起作用。我在这里搜索了一个答案,最接近的是在调用 nx.draw(G) 函数后添加 plt.show(),但这并没有解决我的问题。
欢迎任何帮助!
我的参考代码:
import networkx as nx
import matplotlib.pyplot as plt
import numpy as np
SIZE=10
T = nx.DiGraph()
A = np.zeros((SIZE,SIZE))
# GENERATING AN ADJACENCY MATRIX FOR A RANDOM TOURNAMENT
for i in range(SIZE):
for j in range(i):
if i==j:
pass
else:
if (np.random.binomial(n=1,p=0.5,size=1)==1)[0]:
A[i,j]=1
else:
A[j,i]=1
# ADDING EDGES TO THE GRAPH
for i in range(SIZE):
for j in range(SIZE):
if A[i][j] == 1:
T.add_edge(i,j)
# TRYING TO PLOT THE GRAPH
nx.draw(T)
plt.show()
您需要将以下内容添加到您的 jupyter notebook 的开头
%matplotlib inline
这将导致创建的图显示在笔记本本身中
我正在尝试使用 networkx 包在 python 中绘制一个随机生成的锦标赛,但是 jupyter notebook 在 运行 上没有显示任何内容,我的图表已正确加载,因为我可以调用边数等,只是绘图部分不起作用。我在这里搜索了一个答案,最接近的是在调用 nx.draw(G) 函数后添加 plt.show(),但这并没有解决我的问题。
欢迎任何帮助!
我的参考代码:
import networkx as nx
import matplotlib.pyplot as plt
import numpy as np
SIZE=10
T = nx.DiGraph()
A = np.zeros((SIZE,SIZE))
# GENERATING AN ADJACENCY MATRIX FOR A RANDOM TOURNAMENT
for i in range(SIZE):
for j in range(i):
if i==j:
pass
else:
if (np.random.binomial(n=1,p=0.5,size=1)==1)[0]:
A[i,j]=1
else:
A[j,i]=1
# ADDING EDGES TO THE GRAPH
for i in range(SIZE):
for j in range(SIZE):
if A[i][j] == 1:
T.add_edge(i,j)
# TRYING TO PLOT THE GRAPH
nx.draw(T)
plt.show()
您需要将以下内容添加到您的 jupyter notebook 的开头
%matplotlib inline
这将导致创建的图显示在笔记本本身中