pos = nx.spring_layout(g)
h = g.subgraph(A)
nx.draw_networkx_nodes(h,pos=pos, node_color='b') #or even nx.draw(h,pos=pos,node_color='b') to get nodes and edges in one command
nx.draw_networkx_edges(h,pos=pos)
pos = nx.spring_layout(g)
h = g.subgraph(A)
nx.draw_networkx_nodes(h,pos=pos, node_color='b') #or even nx.draw(h,pos=pos,node_color='b') to get nodes and edges in one command
nx.draw_networkx_edges(h,pos=pos)
TL/DR:只要这样做:
完整答案:
您只需要绘制}。在
^{pr2}$A
中的节点和路径中的边。实际上,可以使用指定绘制哪些节点的nodelist
参数来完全避免{要只绘制与
A
对应的边,您需要弄清楚它们是什么。我知道的最简单的方法是那么
h
是在节点A
上归纳的子图。它的所有边都在A
。我有99.9%的把握(但还没有通过正式的证明)如果A
是两个节点之间的最短路径(由Dijkstra返回),那么除了路径中的边之外,A
中的节点之间没有任何其他边。因此h.edges()
将给出A
的边。在一个更紧凑的形式可以做到:
您可能会问,为什么我将}。这是因为也许你想在以后把
pos
定义为g
,而不是{g
中的其他节点绘制到你的图形或其他图形中,因此保持一致的位置是很有用的。如果你只对h
做这个操作,它基本上会想创建一条直线。在对您的命令}中出现的顺序对节点进行着色。最后,请注意,您需要使用matplotlib能够识别的颜色(请参见http://matplotlib.org/api/colors_api.html)。在这种情况下:
nx.draw_networkx_nodes(g, pos=pos, node_color=noCor)
的一些注释。这告诉它用noCor
中的颜色绘制g
中的所有节点,它将根据颜色在noCor
中出现的顺序和节点在{相关问题 更多 >
编程相关推荐