J'utilise seaborn pour tracer un graphique en barres groupé comme dans https://seaborn.pydata.org/examples/factorplot_bars.html
En me donnant: https://seaborn.pydata.org/_images/factorplot_bars.png
il y a un titre (sexe) sur la légende que je voudrais supprimer.
Comment pourrais-je atteindre cela?
Cela peut être une solution astucieuse mais cela fonctionne: si vous dites à Seaborn de ne pas l'activer au moment du traçage, puis de le rajouter, il n'a pas le titre de légende:
g = sns.factorplot(x='Age Group',y='ED',hue='Became Member',col='Coverage Type',
col_wrap=3,data=gdf,kind='bar',ci=None,legend=False,palette='muted')
# ^^^^^^^^^^^^
plt.suptitle('ED Visit Rate per 1,000 Members per Year',size=16)
plt.legend(loc='best')
plt.subplots_adjust(top=.925)
plt.show()
Exemple de résultat:
Une méthode moins compliquée consiste à utiliser l'interface orientée objet de matplotlib. En prenant le contrôle des axes, il sera beaucoup plus facile de personnaliser le tracé.
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="whitegrid")
# Load the example Titanic dataset
titanic = sns.load_dataset("titanic")
# Draw a nested barplot to show survival for class and sex
fig, ax = plt.subplots()
g = sns.factorplot(x="class", y="survived", hue="sex", data=titanic,
size=6, kind="bar", palette="muted", ax=ax)
sns.despine(ax=ax, left=True)
ax.set_ylabel("survival probability")
l = ax.legend()
l.set_title('Whatever you want')
fig.show()
Si vous souhaitez que la légende soit affichée en dehors de l'axe du tracé, comme par défaut pour factorplot
, vous pouvez utiliser FacetGrid.add_legend
(factorplot
renvoie une instance FacetGrid
D'autres méthodes vous permettent d'ajuster les étiquettes de chaque axe de la FacetGrid
à la fois
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="whitegrid")
# Load the example Titanic dataset
titanic = sns.load_dataset("titanic")
# Draw a nested barplot to show survival for class and sex
g = sns.factorplot(x="class", y="survived", hue="sex", data=titanic,
size=6, kind="bar", palette="muted", legend=False)
(g.despine(left=True)
.set_ylabels('survival probability')
.add_legend(title='Whatever you want')
)