You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Networkx节点标签替换报错及节点样式调整技术问询

问题解决与代码修改

核心问题拆解与解决

  1. 重命名节点后位置映射错误:
    原pos1的键是数字节点名(0、1、2、3),但重命名后的图H节点是字符串(Zero、One等),两者键不匹配导致报错。只需同步映射位置字典的键即可:

    pos2 = {mapping[k]: v for k, v in pos1.items()}
    

    用pos2绘制H就能沿用原节点位置。

  2. 节点大小自动调整:
    可以基于节点的**连接边数(度)**动态设置大小,度越大节点尺寸越大,示例中通过缩放度值来适配可视化效果。

  3. 奇偶节点分色:
    遍历第一张图的节点,根据奇偶性生成对应颜色列表,传给绘图函数的node_color参数即可实现区分。


修改后的完整代码

import networkx as nx
import matplotlib.pyplot as plt

G = nx.DiGraph()

pos1 = {0: (0, 0), 1: (2, 1), 2: (2, 0), 3: (2,-1)}
G.add_edge(0, 1)
G.add_edge(0, 3)
G.add_edge(1, 2)
G.add_edge(2, 3)

# First Network - 奇偶节点分色+自动节点大小
plt.figure(0)
# 生成奇偶节点颜色列表,可自定义颜色值
node_colors = ['#1f78b4' if node % 2 == 0 else '#ff7f00' for node in G.nodes()]
# 基于节点度设置大小,1000为缩放系数,可按需调整
node_sizes = [degree * 1000 for node, degree in G.degree()]
nx.draw_networkx(G, pos1, node_color=node_colors, node_size=node_sizes)
plt.axis("off")
plt.savefig('graph1.png')

# Second network - 修正位置映射
plt.figure(1)
mapping = {0: "Zero", 1: "One", 2: "Two", 3: "Three"}
H = nx.relabel_nodes(G, mapping)
# 同步映射位置字典的键
pos2 = {mapping[k]: v for k, v in pos1.items()}
# 复用自动大小逻辑
h_node_sizes = [degree * 1000 for node, degree in H.degree()]
nx.draw_networkx(H, pos2, node_size=h_node_sizes)

plt.axis("off")
plt.savefig('graph2.png')
plt.show()

可选方案:交互式可视化(pyvis)

如果需要更灵活的交互体验(拖拽节点、缩放视图),可以用pyvis库实现:

from pyvis.network import Network

# 处理第一张图(奇偶分色+自动大小)
net1 = Network(directed=True)
for node in G.nodes():
    color = '#1f78b4' if node%2==0 else '#ff7f00'
    size = G.degree(node)*20  # 按度设置节点大小
    net1.add_node(node, color=color, size=size)
for edge in G.edges():
    net1.add_edge(edge[0], edge[1])
net1.write_html('graph1_interactive.html')

# 处理重命名后的第二张图
net2 = Network(directed=True)
for node in H.nodes():
    size = H.degree(node)*20
    net2.add_node(node, size=size)
for edge in H.edges():
    net2.add_edge(edge[0], edge[1])
net2.write_html('graph2_interactive.html')

生成的网页支持交互式操作,适合查看复杂图结构。

内容的提问来源于stack exchange,提问作者hbaromega

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 09:20:43