Как сделать легенду для всех баров в barplot matplotlib - PullRequest
0 голосов
/ 29 июня 2018

Я хочу сделать легенду для всех баров в моем барплоте. Я уже извлек ярлыки для всех баров, но каким-то образом legend () z создает строку только для первого, а не для второго.

Как мне поступить? Я думал, что, возможно, мне придется вручную извлекать цвета полос, но я не знаю. Я также надеялся, что должен быть более легкий путь.

df.Completeness.value_counts().plot(kind='bar')
_, labels = plt.xticks()
label_names = list(map(lambda p: p.get_text(), labels))
print(label_names)
plt.legend(label_names)

enter image description here

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Если вы запустите этот фиктивный пример, получите ли вы нужный макет?

import pandas as pd
import numpy as np

df=pd.DataFrame({'A':np.random.rand(2)-1,'B':np.random.rand(2)},index=['val1','val2'] )
ax = df.plot(kind='bar', color=['r','b']) 
0 голосов
/ 29 июня 2018

Установите цвет вручную и используйте mpaches

import matplotlib.patches as mpatches
df.Completeness.value_counts().plot(kind='bar')
complete = mpatches.Patch(color='red', label='Complete')
partial = mpatches.Patch(color='blue', label='Partial')
plt.legend(handles=[complete, partial])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...