使用matplotlib与networkx绘图不显示无连接孤立节点如何解决
解决NetworkX绘制时孤立节点不显示的问题
问题原因
你只调用了G.add_edge(1,2)添加边,NetworkX在添加边时仅会自动将边关联的两个节点加入图实例,孤立节点3并未被添加到MultiGraph对象中,因此绘制时不会显示。
解决方法
在添加边之前,先把所有需要展示的节点加入到图实例中即可,修改后完整代码如下:
import networkx as nx import matplotlib.pyplot as plt nodes = {1: (1,0), 2: (0,1), 3: (0,0),} G = nx.MultiGraph() # 新增:将所有节点添加到图中 G.add_nodes_from(nodes.keys()) G.add_edge(1,2) nx.draw_networkx(G, nodes) plt.axis("off") plt.show()
补充说明
如果需要给节点存储坐标属性,也可以用G.add_nodes_from(nodes.items())直接传入节点和对应的坐标元组,后续绘制时不需要重复传pos参数,直接调用nx.draw_networkx(G, pos=nx.get_node_attributes(G, 'pos'))也可以实现相同效果。
内容的提问来源于stack exchange,提问作者aloea
相关产品推荐
相关产品推荐

