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

如何绘制不同颜色、以指定柱为中心配色并带对应图例的直方图

Python直方图自定义配色修改方案

实现逻辑如下:

  • 10个柱子的索引从0开始计数,需求中的第4个柱子对应索引为3
  • 采用对称渐变配色方案,以第4个柱子为中心向两侧渐变,中心柱子单独设置为白色
  • 逐个绘制每个柱子并绑定对应标签,最终生成和柱体颜色匹配的图例
import numpy as np
import pylab as plt
from matplotlib import cm

# 生成原始数据
data = np.array(np.random.rand(1000))
y, binEdges = np.histogram(data, bins=10)
bincenters = 0.5*(binEdges[1:]+binEdges[:-1])
menStd = np.sqrt(y)
width = 0.05

# 配置配色规则
center_idx = 3  # 第4个柱子对应索引
bar_count = len(y)
# 生成渐变配色,可替换为其他matplotlib支持的colormap调整风格
colors = cm.RdBu_r(np.linspace(0, 1, bar_count))
# 中心柱设置为不透明白色
colors[center_idx] = [1,1,1,1]

# 逐个绘制柱子并存储对象用于生成图例
bar_objs = []
for idx in range(bar_count):
    bar = plt.bar(bincenters[idx], y[idx], width=width, color=colors[idx], yerr=menStd[idx])
    bar_objs.append(bar[0])

# 添加图例,可自定义labels内容修改图例显示文字
labels = [f'分组{idx+1}' for idx in range(bar_count)]
plt.legend(bar_objs, labels)

plt.show()

如果需要调整渐变风格,可以将代码中的RdBu_r替换为coolwarm、bwr等matplotlib内置的colormap;也可以直接自定义颜色列表传入colors变量实现自定义配色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:06:04