J'utilise factorplot(kind="bar")
avec seaborn.
L'intrigue est bien sauf que la légende est mal placée: trop à droite, le texte sort de la zone ombrée de l'intrigue.
Comment faire pour que Seaborn place la légende ailleurs, par exemple dans le coin supérieur gauche au lieu du milieu droit?
S'appuyant sur la réponse de @ user308827: vous pouvez utiliser legend=False
dans la représentation graphique et spécifiez la légende via matplotlib:
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="whitegrid")
titanic = sns.load_dataset("titanic")
g = sns.factorplot("class", "survived", "sex",
data=titanic, kind="bar",
size=6, palette="muted",
legend=False)
g.despine(left=True)
plt.legend(loc='upper left')
g.set_ylabels("survival probability")
Modification de l'exemple ici :
Vous pouvez utiliser legend_out = False
import seaborn as sns
sns.set(style="whitegrid")
titanic = sns.load_dataset("titanic")
g = sns.factorplot("class", "survived", "sex",
data=titanic, kind="bar",
size=6, palette="muted",
legend_out=False)
g.despine(left=True)
g.set_ylabels("survival probability")
Découvrez la documentation ici: https://matplotlib.org/users/legend_guide.html#legend-location
en ajoutant ceci a simplement contribué à faire sortir la légende de l'intrigue:
plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
Voici comment j'ai pu déplacer la légende à un endroit particulier de l'intrigue et changer l'aspect et la taille de l'intrigue:
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
matplotlib.style.use('ggplot')
import seaborn as sns
sns.set(style="ticks")
figure_name = 'rater_violinplot.png'
figure_output_path = output_path + figure_name
viol_plot = sns.factorplot(x="Rater",
y="Confidence",
hue="Event Type",
data=combo_df,
palette="colorblind",
kind='violin',
size = 10,
aspect = 1.5,
legend=False)
viol_plot.ax.legend(loc=2)
viol_plot.fig.savefig(figure_output_path)
Cela m'a permis de changer la taille et l'aspect de l'intrigue, ainsi que de déplacer la légende en dehors de la zone de l'intrigue.
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
matplotlib.style.use('ggplot')
import seaborn as sns
sns.set(style="ticks")
figure_name = 'rater_violinplot.png'
figure_output_path = output_path + figure_name
viol_plot = sns.factorplot(x="Rater",
y="Confidence",
hue="Event Type",
data=combo_df,
palette="colorblind",
kind='violin',
size = 10,
aspect = 1.5,
legend_out=True)
viol_plot.fig.savefig(figure_output_path)
J'ai compris cela à partir de la réponse de mwaskom ici et de la réponse de Fernando Hernandez ici .