【发布时间】:2018-11-02 10:12:00
【问题描述】:
首先,我是 Python 和 seaborn 的新手,但是在花了一些时间处理这个问题之后,我相信我的问题没有在其他地方得到解决。如果是这样,我真诚地道歉。
我想使用 seaborn relplot() 函数和 kind='line' 将数据框中的数据绘制为几行不同颜色的数据。对应于行的数据由列中的值分类分隔(例如cat),我使用hue(在本例中为hue='cat')。这是一个简单的例子:
import pandas as pd
import seaborn as sns
df = pd.DataFrame({'x': [0, 1, 3, 4, 7, 1, 2, 5, 6],
'y': [2, 4, 3, 6, 5, 7, 10, 9, 7],
'cat': [0, 0, 0, 0, 0, 1, 1, 1, 1]})
g = sns.relplot(x='x', y='y', hue='cat', kind='line', data=df);
它会生成以下图表:
如何修改图例标题而不更改列名cat?我相信我的问题是图例标题实际上是作为图例项目实现的,所以我想做的是删除该项目,然后添加一个正确的图例标题(我可以使用g._legend.set_title('New title')),但我不知道如何做到这一点。
这个问题与Remove seaborn lineplot legend title 的不同之处在于relplot() 和kind='line' 生成一个FacetGrid 图形并将图例附加到该图形上。这意味着我无法以g.ax.legend().texts 访问图例内容,但必须使用g._legend,在这种情况下我迷路了。
【问题讨论】: