Networkx 图不是平面的
Networkx graph is not planar
我正在尝试绘制网络图。我的代码非常简单。对于小型案例研究,此代码运行良好。但是对于具有更多顶点和弧的更大样本,我得到 G is not planar error。这个错误的原因是什么?
D:\Anaconda3\lib\site-packages\networkx\drawing\layout.py in
planar_layout(G, scale, center, dim)
945 is_planar, embedding = nx.check_planarity(G)
946 if not is_planar:
--> 947 raise nx.NetworkXException("G is not planar.")
948 pos = nx.combinatorial_embedding_to_pos(embedding)
949 node_list = list(embedding)
NetworkXException: G 不是平面的。
def createAttackGraphNonPlanar(pos):
G=nx.DiGraph(directed=True)
G.add_nodes_from([nodes_map[n] for n in nodes])
print(G.nodes())
G.add_edges_from([ (nodes_map[e[0]],nodes_map[e[1]]) for e in arcs])
nx.draw_planar(G, pos=pos, node_size=30, node_color='red', with_labels = True)
函数draw_planar绘制planar graph from the documentation,
Draw a planar networkx graph with planar layout.
并不是所有的图都是平面图。
要绘制任何图表,请改用 draw,例如(仅供演示):
import matplotlib.pyplot as plt
G = nx.dodecahedral_graph()
nx.draw(G) # networkx draw()
plt.draw() # pyplot draw()
有关绘制图表的详细信息,请参阅此 link
我正在尝试绘制网络图。我的代码非常简单。对于小型案例研究,此代码运行良好。但是对于具有更多顶点和弧的更大样本,我得到 G is not planar error。这个错误的原因是什么?
D:\Anaconda3\lib\site-packages\networkx\drawing\layout.py in planar_layout(G, scale, center, dim) 945 is_planar, embedding = nx.check_planarity(G) 946 if not is_planar: --> 947 raise nx.NetworkXException("G is not planar.") 948 pos = nx.combinatorial_embedding_to_pos(embedding) 949 node_list = list(embedding)
NetworkXException: G 不是平面的。
def createAttackGraphNonPlanar(pos):
G=nx.DiGraph(directed=True)
G.add_nodes_from([nodes_map[n] for n in nodes])
print(G.nodes())
G.add_edges_from([ (nodes_map[e[0]],nodes_map[e[1]]) for e in arcs])
nx.draw_planar(G, pos=pos, node_size=30, node_color='red', with_labels = True)
函数draw_planar绘制planar graph from the documentation,
Draw a planar networkx graph with planar layout.
并不是所有的图都是平面图。
要绘制任何图表,请改用 draw,例如(仅供演示):
import matplotlib.pyplot as plt
G = nx.dodecahedral_graph()
nx.draw(G) # networkx draw()
plt.draw() # pyplot draw()
有关绘制图表的详细信息,请参阅此 link