精神残废 2023-03-21 22:40 采纳率: 70.8%
浏览 114
已结题

networkx怎么给节点添加标签


import networkx as nx
import matplotlib.pyplot as plt


# 数据准备
G = nx.DiGraph(with_labels=True)  # 单边有向图

G.add_edges_from([(1,2), ('x','y')]) # 一次性添加多条边
nx.draw(G)        # 简单画一下


plt.axis("off")           # 去掉边框
plt.show()

img

  • 写回答

2条回答 默认 最新

  • 初见~ 2023-03-21 23:14
    关注

    可以通过 nx.set_node_attributes() 给节点添加标签,具体实现如下:

    import networkx as nx
    import matplotlib.pyplot as plt
     
    # 数据准备
    G = nx.DiGraph(with_labels=True)  # 单边有向图
    G.add_edges_from([(1,2), ('x','y')]) # 一次性添加多条边
     
    # 添加节点标签
    labels = {1: 'A', 2: 'B', 'x': 'C', 'y': 'D'}
    nx.set_node_attributes(G, labels, 'label')
     
    # 绘制图形
    pos = nx.spring_layout(G)
    nx.draw(G, pos)
    nx.draw_networkx_labels(G, pos, labels=nx.get_node_attributes(G, 'label'))
    plt.axis("off")
    plt.show()
    
    
    

    其中,nx.set_node_attributes() 的三个参数分别为图对象、标签字典和标签名称。在绘制图形时,使用 nx.draw_networkx_labels() 绘制节点标签。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月30日
  • 已采纳回答 3月22日
  • 修改了问题 3月21日
  • 创建了问题 3月21日