Как связать цвет бара с yticks? - PullRequest
0 голосов
/ 22 апреля 2019

У меня есть datafame ниже:

enter image description here

Я бы хотел составить гистограмму для каждого года, отсортированную по одному цвету для каждого человека. Я только что получил фиксированные цвета, например:

enter image description here

enter image description here

Я использовал этот код:

color = ['red','blue','green','orange']  
for i in range (2007, 2010):
   fig, ax = plt.subplots()
   x = df2.loc[i,].sort_values()
   y = [x.index[0], x.index[1], x.index[2], x.index[3]]
   ax.barh(y,x, color=color)
   plt.title(i)

Как связать цвета с именами?

1 Ответ

1 голос
/ 22 апреля 2019

Вы можете создать словарь, связывающий имена с цветами, а затем использовать эту информацию при печати как

fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(10, 6))

color = ['red','blue','green','orange']  
colors_dict = {k:v for k,v in zip(df2.columns, color)}

for i, ax in zip(range(2007, 2011), axes.flatten()):
    x = df2.loc[i,].sort_values()
    color = [colors_dict[i] for i in x.index]
    ax.barh(x.index, x, color=color)
    ax.set_title(i)
plt.tight_layout()    

enter image description here

...