如何在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
相关产品推荐
相关产品推荐

