Dan*_*iel 18 python matplotlib line-plot seaborn
我想从我的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('')
Run Code Online (Sandbox Code Playgroud)
如果我尝试将标题设置为,我会得到相同的结果None
.有趣的是,将标题设置为其他内容似乎优先于现有标题:
ax.legend().set_title('Something else')
Run Code Online (Sandbox Code Playgroud)
看起来seaborn几乎将标题视为隐藏的传奇条目.我该如何解决这个问题?
Imp*_*est 41
实际上,seaborn正在滥用传奇标签作为(子组)标题.因此,想法可以是删除此标签,或用自定义文本替换它.
替换自定义文本:
legend = ax.legend()
legend.texts[0].set_text("Whatever else")
Run Code Online (Sandbox Code Playgroud)
删除标签:
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles=handles[1:], labels=labels[1:])
Run Code Online (Sandbox Code Playgroud)
删除标签后,您当然可以设置另一个(真实)标题:
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles=handles[1:], labels=labels[1:], title="Whatever else")
Run Code Online (Sandbox Code Playgroud)
ofo*_*nes 11
import seaborn as sns
g = sns.lineplot(x="myXs", y="myYs", hue="myHue", data=mydf)
g.legend_.set_title(None)
Run Code Online (Sandbox Code Playgroud)
扩展ImportanceOfBeingErnest的回答:
我遇到了同样的问题,但“删除标签”示例从实际图例中删除了标题和第一项。
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles=handles[1:], labels=labels[1:])
Run Code Online (Sandbox Code Playgroud)
因此,这仅删除了图例标题:
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles=handles, labels=labels)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7969 次 |
最近记录: |