python - 如何更改seaborn的pairplot()函数中的bin数?

标签 python dataframe seaborn

我有一个包含 36000 行和 51 列的数据集。每行都是一个观察值,前 50 列是每个观察值的 50 个不同特征。第 51 列的值为 0 或 1,其中 0 表示观测值属于 A 类,1 表示观测值属于 B 类。

现在假设我想制作第一列的值的直方图,将其称为“Feature1”。据我所知,matplotlib的plt.hist()无法在同一个图中绘制2个直方图,其中一个对应于A类中Feature1的特征,另一个对应于B类中的特征。另外,seaborn 的 sns.distplot 也不能​​做到这一点。所以我决定尝试如下seaborn的pairplot

sns.pairplot(df, vars = ["Feature1"], hue= "Class", diag_kind = "hist", diag_kws= dict(alpha=0.55))

Feature1 是第一列的名称,Class 是最后一列的名称,其中包含每个观测值的类标签。显示的直方图很好,但我想增加使用的垃圾箱数量。遗憾的是我没有找到任何方法来使用这个特定的函数来做到这一点。

有人知道这个问题的解决方案吗?谢谢

最佳答案

阐述comment通过 Bugbeeb ,当使用 diag_kind = 'hist' 时,diag_kws 被传递到 plt.hist() 中。文档中没有对此进行概述,但从 source 中可以清楚地看出这一点,

def PairPlot(...):
    # ...
    if diag_kind == "hist":
        grid.map_diag(plt.hist, **diag_kws)
    # ...

plt.hist()接受参数 bins 作为整数来控制您可以简单执行的 bin 数量

sns.pairplot(df, vars = ["Feature1"], hue = "Class", diag_kind = "hist", 
             diag_kws = {'alpha':0.55, 'bins':n})

其中 n 是所需的 bin 数量,为 int

关于python - 如何更改seaborn的pairplot()函数中的bin数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59696426/

相关文章:

python - 按颜色计算加载到 numpy 数组中的图像的像素数

python - 同时循环测试和训练集

对数据框中的单个列在另一列的每个级别内重新排序

python-3.x - 遍历列表字典并更新相应的列 - pandas

python - 如何为历史图添加 Edgecolor(儿子)

python - 使用 python 正则表达式查找图像路径

python - 简单的多任务处理

python - seaborn中轴标签的字体大小

python - 使用相同的轴在 seaborn 热图顶部绘制线图

python - 用selenium python模拟一个onclick