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

如何在matplotlib中根据x轴数值调整直方图的柱子颜色

你可以直接套用以下代码实现按x轴数值设置直方图柱子颜色:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

# 替换为你自己的DataFrame数据
df = pd.DataFrame({'value': np.random.randn(1000) * 3})

# 绘制直方图并获取返回对象,counts是各柱子高度,bins是区间边界,patches是柱子对象集合
counts, bins, patches = plt.hist(df['value'], bins=30)

# 计算每个柱子对应区间的中点,作为该柱子的x轴参照值
bin_x_values = (bins[:-1] + bins[1:]) / 2

# 按规则遍历设置每个柱子的颜色
for x_val, patch in zip(bin_x_values, patches):
    # 浮点数值判断等于0时,建议加精度容差避免误差影响
    if abs(x_val) < 1e-8:
        patch.set_facecolor('green')
    elif x_val > 0:
        patch.set_facecolor('red')
    else:
        patch.set_facecolor('yellow')

plt.show()

补充说明

  • 如果你的需求是只要区间包含0就设置为绿色,只需要把判断逻辑修改为判断bins[i] <= 0 <= bins[i+1]即可
  • 你可以自行调整bins参数的数值或者区间划分规则,保证0的位置符合你的预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 09:36:04