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

如何使用Matplotlib自定义误差图的系列颜色与深浅配色

Matplotlib误差棒自定义配色方案

核心配置逻辑:

  • 为x=0位置的两个数据集(data1、data3)分配绿色系,选用#238b45(深绿)、#74c476(浅绿)做深浅区分
  • 为x=1位置的两个数据集(data2、data4)分配红色系,选用#cb181d(深红)、#fb6a4a(浅红)做深浅区分
  • 调用errorbar时通过color指定标记色、ecolor指定误差棒色、capsize设置误差棒端帽长度,匹配参考图显示效果
  • 修正原示例的坐标配置:x=0组数据集固定在x=0坐标绘制,x=1组数据集固定在x=1坐标绘制,避免跨位置渲染

完整可运行代码:

import matplotlib.pyplot as plt

# 预定义配色
color_map = {
    "data1": "#238b45",
    "data3": "#74c476",
    "data2": "#cb181d",
    "data4": "#fb6a4a"
}

# 构造样本数据
data_1 = {
    'x': [0],
    'y': [2],
    'yerr': [0.2],
    'color': color_map["data1"],
    'ecolor': color_map["data1"],
    'capsize': 5
}
data_2 = {
    'x': [1],
    'y': [5],
    'yerr': [0.2],
    'color': color_map["data2"],
    'ecolor': color_map["data2"],
    'capsize': 5
}
data_3 = {
    'x': [0],
    'y': [6],
    'yerr': [0.3],
    'color': color_map["data3"],
    'ecolor': color_map["data3"],
    'capsize': 5
}
data_4 = {
    'x': [1],
    'y': [10.6],
    'yerr': [0.8],
    'color': color_map["data4"],
    'ecolor': color_map["data4"],
    'capsize': 5
}

# 绘制左子图
plt.subplot(121)
plt.errorbar(**data_1, fmt='o', markersize=8)
plt.errorbar(**data_2, fmt='o', markersize=8)
plt.xlim([-0.5, 1.5])
plt.xticks([0, 1])

# 绘制右子图
plt.subplot(122)
plt.errorbar(**data_3, fmt='o', markersize=8)
plt.errorbar(**data_4, fmt='o', markersize=8)
plt.xlim([-0.5, 1.5])
plt.xticks([0, 1])

plt.tight_layout()
plt.show()

如果需要保留原数据中每个系列同时包含x=0、x=1点位的结构,仅要求不同x位置的点位匹配对应色系,可以给颜色参数传入与x序列等长的颜色列表,按点位自动匹配颜色,示例写法:

# 左子图data1:x=0用深绿,x=1用深红
plt.errorbar(
    x=[0,1], y=[2,3], yerr=[0.2,0.2], fmt='o', markersize=8,
    color=[color_map["data1"], color_map["data2"]],
    ecolor=[color_map["data1"], color_map["data2"]],
    capsize=5
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 03:22:03