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

Matplotlib绘制多箭头时如何配置关联数值的颜色条

matplotlib多箭头统一颜色映射加颜色条实现

原代码问题

原代码循环逐次调用plt.quiver()绘制单根箭头,每次调用都会生成独立的颜色映射范围,单根箭头的数值会被当作独立数据集计算颜色,既无法实现多箭头统一按数值分配颜色,也无法生成全局匹配的颜色条。

修正代码

import matplotlib.pyplot as plt

I6 = [
    [(0.5, -0.5), (1.0, 0.0),10], 
    [(0.5, -0.5), (0.0, -1.0),20], 
    [(1.5, -0.5), (0.0, -1.0),30], 
    [(0.5, -1.5), (1.0, 0.0),40]
]

# 拆分所有箭头的坐标、偏移、对应数值为独立数组
x = []
y = []
dx = []
dy = []
val = []
for item in I6:
    (px, py), (ddx, ddy), v = item
    x.append(px)
    y.append(py)
    dx.append(ddx)
    dy.append(ddy)
    val.append(v)

# 一次性传入所有箭头参数,共用同一套颜色映射规则
quiver_plot = plt.quiver(
    x,
    y,
    dx,
    dy,
    val,
    scale=1,
    units="xy",
    scale_units="xy",
    cmap="viridis" # 可根据需求替换为其他matplotlib内置色卡
)

# 绑定颜色条
plt.colorbar(quiver_plot, label="映射数值")

# 调整坐标轴参数避免箭头截断、方向畸变
plt.xlim(0, 2.5)
plt.ylim(-2.5, 0.5)
plt.gca().set_aspect("equal")

plt.show()

关键修改点

  • 不再循环单根调用quiver,将所有箭头参数汇总后一次性传入,保证所有箭头共用统一的数值-颜色映射规则
  • 捕获quiver返回的绘图对象传入colorbar,保证颜色条的色阶和箭头颜色完全对应
  • 补充坐标轴范围、等比例设置,避免箭头显示不全、方向拉伸变形

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:55:15