Remove seaborn lineplot legend title
Important: This answer is about the case when a hue
is used that appears as a legend title. In all other cases, the question itself already contains the usual way to get rid of a title.
Indeed, seaborn is misusing a legend label as a (subgroup-)title. Hence the idea can be to either remove this label, or replace it with custom text.
Replacing with custom text:
legend = ax.legend()
legend.texts[0].set_text("Whatever else")
Removing the label:
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles=handles[1:], labels=labels[1:])
After having removed the label you may of course still set another (real) title:
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles=handles[1:], labels=labels[1:], title="Whatever else")
import seaborn as sns
g = sns.lineplot(x="myXs", y="myYs", hue="myHue", data=mydf)
g.legend_.set_title(None)
Extending ImportanceOfBeingErnest's answer:
I had the same problem, but the 'Removing the label' example removed the title and first item from the actual legend.
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles=handles[1:], labels=labels[1:])
So, this removes just the legend title:
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles=handles, labels=labels)