Удалить легендарное название линии линии

Я хотел бы удалить заголовок из моей легенды о морском сюжете. Я попытался использовать этот ответ безрезультатно:

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('')

Seaborn lineplot still with 'event' title

Я получаю то же самое, если пытаюсь установить заголовок None. Интересно, что установка заголовка на что-то другое, кажется, предшествует существующему заголовку:

ax.legend().set_title('Something else')

Seaborn lineplot still with prepend title

Похоже, что Морской Борн рассматривает название как скрытую запись легенды. Как я могу решить это?

Ответы

Ответ 1

Действительно, морское дно злоупотребляет лейблом легенды как титул (subgroup-). Следовательно, идея может заключаться в том, чтобы удалить эту метку или заменить ее на пользовательский текст.

Замена пользовательским текстом:

legend = ax.legend()
legend.texts[0].set_text("Whatever else")

enter image description here

Удаление метки:

handles, labels = ax.get_legend_handles_labels()
ax.legend(handles=handles[1:], labels=labels[1:])

enter image description here

После удаления ярлыка вы, конечно, можете установить еще один (настоящий) заголовок:

handles, labels = ax.get_legend_handles_labels()
ax.legend(handles=handles[1:], labels=labels[1:], title="Whatever else")

enter image description here

Ответ 2

Расширение ответа ImportanceOfBeingErnest:

У меня была та же проблема, но пример "Удаление ярлыка" удалил заголовок и первый элемент из настоящей легенды.

handles, labels = ax.get_legend_handles_labels() ax.legend(handles=handles[1:], labels=labels[1:])

Так что это удаляет только заголовок легенды

ax.legend(handles=handles[0:], labels=labels[0:])

(Я не могу комментировать, поэтому добавляю это как ответ)