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

如何在Python中根据数值大小生成对应颜色绘制柱状图?

实现柱状图颜色随数值深浅变化的解决方案

要让柱状图的颜色随数值大小渐变(数值越小颜色越浅,越大越深),可以利用Matplotlib的颜色映射(colormap)功能来实现,具体步骤如下:

核心思路

  1. 将数值归一化到0-1的范围,方便对应颜色映射的梯度区间
  2. 选择一个渐变配色方案(比如蓝色系Blues,从浅到深)
  3. 为每个数值匹配对应的颜色

修改后的完整代码

import matplotlib.pyplot as plt
from matplotlib.colors import Normalize

fig, ax = plt.subplots()

names = ['A', 'B', 'C', 'D']
counts = [30, 40, 55, 100]

# 把数值归一到0-1区间,最小数值对应0,最大数值对应1
norm = Normalize(vmin=min(counts), vmax=max(counts))
# 选用蓝色渐变配色,数值越小颜色越浅,越大越深
cmap = plt.cm.Blues
# 为每个count值生成对应的颜色
bar_colors = cmap(norm(counts))

ax.bar(names, counts, color=bar_colors)
ax.set_ylabel('Frequency')
ax.set_title('Names')
plt.show()

代码说明

  • Normalize:负责将counts中的数值线性映射到0-1范围,保证最小数值对应配色的最浅端,最大数值对应最深端
  • plt.cm.Blues:Matplotlib内置的蓝色渐变配色方案,你也可以替换成其他渐变配色,比如Greens(绿色渐变)、Reds(红色渐变)来适配不同需求
  • cmap(norm(counts)):生成每个数值对应的RGBA颜色数组,直接传递给bar函数的color参数即可实现渐变效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 19:40:29