Вставить легенду, используя метки сопоставленных столбцов и параметры цвета - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь вставить legend, который отображает сопоставленные цвета, которые ссылаются на соответствующие значения столбца. В частности, для df ниже column столбцы отображаются с использованием различных colors. Я пытаюсь отобразить эти цвета со значением в legend.

Таким образом, намеченный вывод будет отображаться:

A = green
B = blue
C = black

Вот моя попытка:

import pandas as pd

df = pd.DataFrame({
    'Gr1' :    ['Foo','Boo','Bar','Foo','Bur','Foo','Boo','Bar','Boo'],
    'Gr2' :    ['A','B','B','C','A','B','C','C','A'],
    'Value' :    [1,2,4,6,8,20,25,29,30],
})

colors = {'A':'green', 'B':'blue', 'C': 'black'}
df.plot.bar(x='Gr1', y='Value', color = df['Gr2'].map(colors), label = 'Gr2');

1 Ответ

1 голос
/ 20 мая 2019

Думаю, вам лучше всего создать легенду вручную.Для автоматического создания легенды обычно требуются разные наборы данных, установленные как разные наборы объектов.Вот руководство по созданию пользовательских легенд matplotlib .Нечто подобное добавленное должно работать для вас:

from matplotlib.patches import Patch

legend_elements = [Patch(facecolor=c, label=x) for x, c in colors.items()]
ax.legend(handles=legend_elements)

enter image description here

...