Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.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中绘制图形_Python_Matplotlib_Ipython_Ipython Notebook_Networkx - Fatal编程技术网

Python 在NetworkX中绘制图形

Python 在NetworkX中绘制图形,python,matplotlib,ipython,ipython-notebook,networkx,Python,Matplotlib,Ipython,Ipython Notebook,Networkx,我试图在NetworkX中绘制任何图形,但什么也没有得到,甚至没有错误: import networkx as nx import matplotlib.pyplot as plt g1=nx.petersen_graph() nx.draw(g1) 在末尾添加: plt.show() 从调用了plt.ion()的交互式shell运行时,不需要plt.show()。这可能就是为什么在很多例子中省略了它 如果从脚本运行这些命令(其中未调用plt.ion()),则需要plt.show()plt

我试图在NetworkX中绘制任何图形,但什么也没有得到,甚至没有错误:

import networkx as nx
import matplotlib.pyplot as plt
g1=nx.petersen_graph()
nx.draw(g1)
在末尾添加:

plt.show()

从调用了
plt.ion()
的交互式shell运行时,不需要
plt.show()
。这可能就是为什么在很多例子中省略了它


如果从脚本运行这些命令(其中未调用
plt.ion()
),则需要
plt.show()
plt.ion()
对于交互式会话是可以的,但实际上是可以的。

在ipython笔记本中,只需键入magic即可

%matplotlib inline


您可以使用jupyter笔记本轻松绘制
networkx
图形。参见第一个示例

或者,您可以使用
Bokeh
来绘制图形,从而添加有用的功能。 holoviews的包
holoviews
使用bokeh绘制图形变得更加简单。它添加了自动高亮显示和在节点上悬停时显示标签等功能。然而,编辑颜色等似乎是一个问题

%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))

下面是bokeh和holoview的例子:

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()

到您的代码。我的工作正常。

还要确保您使用的是交互式后端。
matplotlib.get\u backend()返回什么?show()帮助。谢谢你。最后我保存了数字却没有显示()。
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()