我正在尝试使用networkx
库绘制图形。另外,我想通过plotly
中的Jypyter
将其绘制为交互式图形,因此首先我修改了demo code以使用networkx
绘制静态图形(请参见顶部下图),然后我使用iplot_mpl()
方法通过plotly
将图转换为交互式图。但是,图中的边缘没有显示(请参见底部)。
代码如下,
from __future__ import division
import matplotlib as mpl
import matplotlib.pyplot as plt
import networkx as nx
from plotly.offline import (init_notebook_mode,
iplot_mpl)
init_notebook_mode(connected=True)
G = nx.generators.directed.random_k_out_graph(10, 3, 0.5)
pos = nx.layout.spring_layout(G)
node_sizes = [3 + 10 * i for i in range(len(G))]
M = G.number_of_edges()
edge_colors = range(2, M + 2)
edge_alphas = [(5 + i) / (M + 4) for i in range(M)]
fig = plt.figure()
nodes = nx.draw_networkx_nodes(G, pos, node_size=node_sizes, node_color='blue')
edges = nx.draw_networkx_edges(G, pos, node_size=node_sizes, arrowstyle='->',
arrowsize=10, edge_color=edge_colors,
edge_cmap=plt.cm.Blues, width=2)
# for the top figure
plt.show()
# for the bottom figure
iplot_mpl(fig)
我还尝试使用由draw_networkx()
和draw_networkx_nodes()
插入的draw_networkx_edges()
。不幸的是,优势仍然没有显现出来。此外,我还在ax
方法中设置了draw_networkx()
参数,结果是一样的...
fig, ax = plt.subplots()
nx.draw_networkx(..., ax=ax)
提前感谢您的评论!