Удалить легендарное название линии линии
Я хотел бы удалить заголовок из моей легенды о морском сюжете. Я попытался использовать этот ответ безрезультатно:
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('')
Я получаю то же самое, если пытаюсь установить заголовок None
. Интересно, что установка заголовка на что-то другое, кажется, предшествует существующему заголовку:
ax.legend().set_title('Something else')
Похоже, что Морской Борн рассматривает название как скрытую запись легенды. Как я могу решить это?
Ответы
Ответ 1
Действительно, морское дно злоупотребляет лейблом легенды как титул (subgroup-). Следовательно, идея может заключаться в том, чтобы удалить эту метку или заменить ее на пользовательский текст.
Замена пользовательским текстом:
legend = ax.legend()
legend.texts[0].set_text("Whatever else")
Удаление метки:
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles=handles[1:], labels=labels[1:])
После удаления ярлыка вы, конечно, можете установить еще один (настоящий) заголовок:
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles=handles[1:], labels=labels[1:], title="Whatever else")
Ответ 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:])
(Я не могу комментировать, поэтому добавляю это как ответ)