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

基于字典值设置Matplotlib柱状图颜色的方案求助

带颜色区分的字典值柱状图解决方案

嘿,我来帮你搞定这个需求!你想要根据字典值相对于Testing变量的比例给柱状图柱子分配不同颜色,这个思路很清晰,咱们用Python的matplotlib库就能轻松实现,步骤如下:

实现步骤

  • 首先导入绘图需要的matplotlib.pyplot库
  • 定义你的目标字典和Testing变量
  • 计算两个关键阈值:Testing的33%和66%,用来划分颜色区间
  • 遍历字典的每个值,根据区间匹配对应的颜色,生成颜色列表
  • 最后绘制柱状图,把颜色列表传入参数即可

完整代码示例

import matplotlib.pyplot as plt

# 定义你的字典和目标变量Testing
data_dict = {'ABCD': 10, 'MNO': 60, 'PQR': 70, 'XYZ': 100}
Testing = 100

# 计算颜色划分的阈值
threshold_low = Testing * 0.33
threshold_high = Testing * 0.66

# 生成对应每个值的颜色列表
bar_colors = []
for val in data_dict.values():
    if val < threshold_low:
        bar_colors.append('red')
    elif threshold_low <= val < threshold_high:
        bar_colors.append('yellow')
    else:
        bar_colors.append('blue')

# 绘制柱状图
plt.bar(data_dict.keys(), data_dict.values(), color=bar_colors)

# 给图表添加必要的标注,提升可读性
plt.title('Dictionary Values Bar Chart (Color-Coded by Threshold)')
plt.xlabel('Dictionary Keys')
plt.ylabel('Values')

# 显示图表
plt.show()

代码说明

这段代码完全贴合你的需求:

  • ABCD的值10小于33(100*0.33),对应红色柱子
  • MNO的值60介于33和66之间,对应黄色柱子
  • PQR的70和XYZ的100都大于等于66,对应蓝色柱子

运行代码后就能看到符合预期的彩色柱状图啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:13:26