首页 > 解决方案 > Seaborn pairplot 色调参数未按预期工作

问题描述

如果将“C”指定为“hue”参数的值,则预计 Seaborn 不会显示“C”列。我错了吗?

sns.pairplot(df, hue='C')

在此处输入图像描述

数据框:

在此处输入图像描述

标签: pythonplotseaborn

解决方案


默认情况下,seaborn 将显示所有数字列!

因此,如果您的“色调”列(在您的情况下为“C”)列为字符串(对象)类型,它将在图表上不可见

例如:

import numpy as np
import pandas as pd
import seaborn as sns

data = {
    'A': [*np.random.random(5)],
    'B': [*np.random.random(5)],
    'C': ['X', 'Y', 'X', 'X', 'Y']
}

df = pd.DataFrame(data)

在此处输入图像描述

sns.set(style="ticks", color_codes=True)
sns.pairplot(df, hue='C')

在此处输入图像描述

但是,如果您将“C”列作为数值,则必须使用“vars”来指定要使用的列:

vars : 变量名列表,可选

要使用的数据中的变量,否则使用具有数字数据类型的每一列。

data = {
    'A': [*np.random.random(5)],
    'B': [*np.random.random(5)],
    'C': [*np.random.randint(1, 3, 5)]
}

df = pd.DataFrame(data)

在此处输入图像描述

sns.set(style="ticks", color_codes=True)
sns.pairplot(df, hue='C', vars=['A', 'B'])

在此处输入图像描述


推荐阅读