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

如何用指定字典为Matplotlib柱状图匹配对应颜色?

解决方法

要让每个柱子的颜色和data字典的键一一对应,你需要根据data的键的顺序,从colors字典中依次取出对应的颜色值,生成一个和柱子顺序匹配的颜色列表,再传给plt.bar的color参数。

另外注意:你的data字典里的值是字符串类型,绘图前最好转换成数值类型(int/float),避免潜在问题。

修改后的完整代码

import matplotlib.pyplot as plt

data = {"rdeca": "4",
        "zelena": "5",
        "rumena": "7",
        "modra": "2",
        "roza": "9"}

colors = {"rdeca": "red",
          "zelena": "green",
          "modra": "blue",
          "roza": "pink",
          "rumena": "yellow"}

# 将data的值转为整数
data_values = [int(v) for v in data.values()]
# 根据data的键顺序生成对应颜色列表
color_list = [colors[key] for key in data.keys()]

plt.bar(range(len(data)), data_values, align='center', color=color_list)
plt.xticks(range(len(data)), list(data.keys()))
plt.show()

关键说明

  • color_list = [colors[key] for key in data.keys()]:遍历data的所有键,按顺序从colors中取出对应颜色,这样颜色顺序就和data的柱子顺序完全匹配了。
  • 转换data的值为数值类型:字符串类型的数值在绘图时可能导致坐标轴显示异常,转成int/float能保证绘图正常。

这样修改后,每个柱子就会对应到colors字典里的正确颜色了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 15:57:20