基于字典值设置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
相关产品推荐
相关产品推荐

