[英]Remove seaborn lineplot legend title
我想從我的 seaborn lineplot 圖例中刪除標題。 我嘗試使用此答案無濟於事:
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')
看起來seaborn幾乎將標題視為隱藏的圖例條目。 我該如何解決這個問題?
重要提示:此答案是關於使用顯示為圖例標題的hue
的情況。 在所有其他情況下,問題本身已經包含擺脫標題的常用方法。
事實上,seaborn 正在濫用圖例標簽作為(子組)標題。 因此,想法可以是刪除此標簽,或將其替換為自定義文本。
替換為自定義文本:
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")
import seaborn as sns
g = sns.lineplot(x="myXs", y="myYs", hue="myHue", data=mydf)
g.legend_.set_title(None)
擴展ImportanceOfBeingErnest的回答:
我遇到了同樣的問題,但“刪除標簽”示例從實際圖例中刪除了標題和第一項。
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, labels=labels)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.