python - 删除 seaborn 线图图例标题
问题描述
我想从我的 seaborn 线图图例中删除标题。我尝试使用此答案无济于事:
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
使用 a 并显示为图例标题的情况。在所有其他情况下,问题本身已经包含摆脱标题的常用方法。
事实上,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")
推荐阅读
- mysql - Mysql在提供后从下一行开始选择接下来的1000行
- android - MPAndroidChart 如何将信息视图添加到轴?
- ios - 访问字典数组的嵌套数组
- javascript - 使用 axios POST 时出现错误
- ssl - 从 conda 提示符安装任何软件包时出现 SSL 错误
- c# - 设置相对于最后一行文本的光标位置 | C# 控制台应用程序
- java - Android MVP - 我应该从哪里阅读 Textview?
- ios - UIScrollView + LargeTitle (iOS 11) - 滚动到顶部并显示大标题
- java - 数组变量基本类型
- html - 限制每个会话的 CSS 动画