我有一个包含 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/