Вам нужно использовать 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)