我一直在谷歌上查找是否可以仅更改matplotlib制作的图形中条形图的颜色。 想象一下这个图:
假设我已经评估了1到10,并且当用户选择评估时,我生成了一个图表。对于每次评估,其中一个男孩将获胜 因此,对于每个图表,我想以不同的颜色离开获胜者栏,让我们说吉姆赢得了评价1。吉姆酒吧是红色的,其他人是蓝色的。
我有一个包含值的词典,我试图做的是这样的:
for value in dictionary.keys(): # keys are the names of the boys
if winner == value:
facecolor = 'red'
else:
facecolor = 'blue'
ax.bar(ind, num, width, facecolor=facecolor)
任何人都知道这样做的方法吗?
提前致谢:)
答案 0 :(得分:19)
您需要使用color
代替facecolor
。您还可以将颜色指定为列表而不是标量值。因此,对于您的示例,您可以color=['r','b','b','b','b']
例如,
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
N = 5
ind = np.arange(N)
width = 0.5
vals = [1,2,3,4,5]
colors = ['r','b','b','b','b']
ax.barh(ind, vals, width, color=colors)
plt.show()
是一个完整的例子,展示了你想要的东西。
回答你的评论:
colors = []
for value in dictionary.keys(): # keys are the names of the boys
if winner == value:
colors.append('r')
else:
colors.append('b')
bar(ind,num,width,color=colors)
答案 1 :(得分:1)