Python Seaborn pairplot:如何更改图例标签文本

Python Seaborn pairplot:如何更改图例标签文本,python,python-3.x,seaborn,Python,Python 3.x,Seaborn,我正在用Python中的Seaborn制作一个简单的pairplot,它通过数据帧中变量之间的绘图元素的颜色来显示分类变量的不同级别。虽然情节完全符合我的要求,但分类变量是二进制的,这使得图例对于不熟悉数据的观众来说毫无意义(类别自然标记为0和1) 我的代码示例如下: g = sns.pairplot(df, hue='categorical_var', palette='Set3') 有没有办法用pairplot更改图例标签文本?或者我应该使用PairGrid,如果是这样的话,我将如何处理这

我正在用Python中的Seaborn制作一个简单的pairplot,它通过数据帧中变量之间的绘图元素的颜色来显示分类变量的不同级别。虽然情节完全符合我的要求,但分类变量是二进制的,这使得图例对于不熟悉数据的观众来说毫无意义(类别自然标记为0和1)

我的代码示例如下:

g = sns.pairplot(df, hue='categorical_var', palette='Set3')

有没有办法用pairplot更改图例标签文本?或者我应该使用PairGrid,如果是这样的话,我将如何处理这个问题?

既然您没有提供完整的代码示例,也没有模拟数据,我将使用我自己的代码来回答

第一个解决方案

最简单的方法必须是保留二进制标签进行分析,并创建一个带有专有名称的列进行打印。这是我的一个示例代码,您应该抓住这个想法:

def transconum(morph):
    if (morph == 'S'):
        return 1.0
    else:
        return 0.0

CompactGroups['MorphNum'] = CompactGroups['MorphGal'].apply(transconum)
第二种解决方案

另一种方法是覆盖航班上的标签。下面是我的一个示例代码,它可以完美地工作:

grid = sns.jointplot(x="MorphNum", y="PropS", data=CompactGroups, kind="reg")
grid.set_axis_labels("Central type", "Spiral proportion among satellites")
grid.ax_joint.set_xticks([0, 1, 1])
plt.xticks(range(2), ('$Red$', '$S$')) 

找到了!答案如下:


为什么0和1是类别的自然标签?为什么不使用有意义的名称呢?因为我以后需要数值进行分析。这是否回答了您的问题?只是对第一个解决方案的注释:可以简化为列表理解
CompactGroups['MorphNum']=[1如果i==True,否则0表示CompactGroups['MorphGal']==S']
此代码更改图例标题,而不是图例标签。但是链接的问题确实与标签有关,因此感谢您的链接。
g = sns.pairplot(df, hue='categorical_var', palette='Set3')
g._legend.set_title(new_title)