【问题标题】:Is there a way pairplots could include 'Objects' dtypes variables?有没有办法pairplots可以包含“对象”dtypes变量?
【发布时间】:2020-04-21 11:02:50
【问题描述】:

以下是我的数据框的一部分:

Category Calories Total Fat Saturated Fat Trans Fat 0 Breakfast 300 13.0 5.0 0.0 1 Breakfast 250 8.0 3.0 0.0 2 Breakfast 370 23.0 8.0 0.0 3 Breakfast 450 28.0 10.0 0.0 4 Breakfast 400 23.0 8.0 0.0

我想使用sns.pairplot() 函数。但是,它不会显示“类别”。让我知道是否有某种方法可以在其上添加“类别”变量。

【问题讨论】:

    标签: python-3.x matplotlib seaborn


    【解决方案1】:

    pairplots 中,分类变量可用于设置hues,但不能共同构造FacetGrid 的任何方面。例如,参见seaborn 手册中的此代码:https://seaborn.pydata.org/generated/seaborn.pairplot.html

    import seaborn as sns; sns.set(style="ticks", color_codes=True)
    iris = sns.load_dataset("iris")
    
    In[280]: iris.dtypes
    Out[280]: 
    sepal_length    float64
    sepal_width     float64
    petal_length    float64
    petal_width     float64
    species          object
    dtype: object
    

    你可以看到,如果你启动

    g = sns.pairplot(iris)
    

    没有分面显示species 变量。但是,如果你现在这样做

    g = sns.pairplot(iris, hue="species")
    

    您的数据根据​​species 很好地着色了

    添加

    您可以通过在varslist 中指定它来强制您的分类变量位于其中一个方面

    g = sns.pairplot(iris, vars=['petal_length', 'species'])
    

    引导您找到可能不是 pairplots 的初衷但可能是您正在寻找的东西

    【讨论】:

    • 不是色调。有没有办法可以将数据集中的“物种”添加到一行和一列?
    • 根据pairplot 规范,您可以传递变量名称的varslist(可选):“要使用的数据中的变量,否则将每一列与数字 数据类型。”
    • 您可以强制将您的分类变量放在构面中。试试这个:g = sns.pairplot(iris, vars=['petal_length', 'species']) 并检查你是否喜欢你得到的输出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 2011-08-20
    相关资源
    最近更新 更多