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

NetworkX可视化时如何固定节点位置以追踪节点颜色变化

固定NetworkX绘图的节点位置

每次调用nx.draw()时,默认会重新随机计算节点的布局位置,导致前后绘图节点位置不一致。要固定位置,只需要提前生成一次布局坐标,后续绘图时传入这个坐标即可。

修改后的代码

import networkx as nx
import matplotlib.pyplot as plt
import numpy as np

n = 50
p = 0.12

np.random.seed(42)

G = nx.gnp_random_graph(n, p)
color_map = np.random.choice(['blue', 'red'], size=50)

# 提前生成并固定节点布局位置
pos = nx.spring_layout(G)  # 可替换为nx.circular_layout、nx.kamada_kawai_layout等其他布局算法

# 第一次绘图,使用固定的pos
nx.draw(G, pos=pos, node_color=color_map, with_labels=True)
plt.savefig('2.png')
plt.clf()  # 清空画布,避免两次绘图内容叠加

# 第二次绘图,复用同一个pos
nx.draw(G, pos=pos, node_color=color_map, with_labels=True)
plt.savefig('3.png')

关键说明

  • 布局算法可按需选择:spring_layout是常用的力导向布局,你可以根据图的类型换成环形、Kamada-Kawai等其他布局,只要生成一次后固定传入pos参数即可。
  • plt.clf()用于清空当前画布,保证两次保存的图片是独立的,不会出现内容叠加的情况。
  • 后续修改节点颜色后绘图,只要继续传入同一个pos,节点位置就会完全重合,便于追踪颜色变化或制作GIF。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 13:29:59