Легенда Matplotlib / Seaborn меняет стиль после добавления ярлыков - PullRequest
0 голосов
/ 23 мая 2019

Я строю некоторые из моих данных от панды das, используя seaborn.Почти все хорошо выглядит, используя следующий код:

import pandas as pd
import seaborn as sns

sns.set(style='whitegrid', palette='muted')

legend = ["Hue 1", "Hue 2"]
order = ["A", "B"]

ax = sns.violinplot(x=df.xaxis, y=df.yaxis, hue=df.hue,
                    split=True, order=order)
ax.set_ylim(0, 100)
ax.set(xlabel='X - axis', ylabel='Y - axis')
ax.legend(title='Legend', loc='upper left', labels=legend)
ax.set_title('My little plot')
plt.show()

Как только я добавлю labels=, в легенде появится изменение типа линии.Ниже приведен скриншот.К сожалению, мой набор данных слишком велик для публикации, поэтому я надеюсь, что этого достаточно.

Заранее спасибо.BBQuercus:)

Слева без, справа с labels (R, C - значения в моих данных).

Without labels With labels

1 Ответ

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

Вы можете попытаться нарисовать патчи для своей легенды. Я не проверял это, но думаю, что оно должно работать.

from matplotlib.patches import Patch
palette=sns.color_palette('muted')

bluepatch = Patch(
    facecolor=palette[0],edgecolor='k',label='Hue 1'
)
orangepatch = Patch(
    facecolor=palette[1],edgecolor='k',label='Hue 2'
)

ax.legend(
    labels=['Hue 1','Hue 2'], 
    handles=[bluepatch, orangepatch], 
    title='Legend', 
    loc='upper left'
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...