Je voudrais supprimer le titre de ma légende de tracé de ligne né en mer. J'ai essayé d'utiliser cette réponse en vain:
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
fmri = sns.load_dataset("fmri")
fig, ax = plt.subplots()
g = sns.lineplot(x="timepoint", y="signal", hue="event", data=fmri, ax=ax)
ax.legend().set_title('')
J'obtiens la même chose si j'essaie de définir le titre sur None
. Fait intéressant, la définition du titre sur autre chose semble précéder le titre existant:
ax.legend().set_title('Something else')
Il semble presque que Seaborn traite le titre comme une entrée de légende cachée. Comment puis-je résoudre ça?
En effet, Seaborn utilise abusivement une étiquette de légende comme titre (de sous-groupe). L'idée peut donc être de supprimer cette étiquette ou de la remplacer par du texte personnalisé.
Remplacement par du texte personnalisé:
legend = ax.legend()
legend.texts[0].set_text("Whatever else")
Suppression de l'étiquette:
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles=handles[1:], labels=labels[1:])
Après avoir retiré l'étiquette, vous pouvez bien sûr encore définir un autre (vrai) titre:
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles=handles[1:], labels=labels[1:], title="Whatever else")
Étendre la réponse ImportanceOfBeingErnest:
J'ai eu le même problème, mais l'exemple "Suppression de l'étiquette" a supprimé le titre et le premier élément de la légende actuelle.
handles, labels = ax.get_legend_handles_labels() ax.legend(handles=handles[1:], labels=labels[1:])
Donc, cela supprime juste le titre de la légende
ax.legend(handles=handles[0:], labels=labels[0:])
(Je ne peux pas commenter, donc ajoutez ceci comme réponse)