python - 如何更改 seaborn 的 pairplot() 函数中的 bin 数量?
问题描述
我有一个 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 是最后一列的名称,其中包含每个观察的类标签。出现的直方图很好,但我想增加使用的 bin 数量。可悲的是,我没有找到使用此特定功能的任何方法。
有人知道这个问题的解决方案吗?谢谢
解决方案
为了解释Bugbeeb的评论,使用时传入. 这在文档中没有概述,但从源代码中可以清楚地看到,diag_kind = 'hist'
diag_kws
plt.hist()
def PairPlot(...): # ... if diag_kind == "hist": grid.map_diag(plt.hist, **diag_kws) # ...
由于plt.hist()
接受参数bins
作为整数来控制箱的数量,你可以简单地做
sns.pairplot(df, vars = ["Feature1"], hue = "Class", diag_kind = "hist",
diag_kws = {'alpha':0.55, 'bins':n})
哪里n
是所需的 bin 数量int
。
推荐阅读
- python - 通过python selenium提取2个跨度标签之间的文本
- php - 无效参数号:未定义参数(如何更新两列)
- python - 如何显示字符出现的位置?
- python - 我正在尝试创建一个语音应用程序,但由于分段错误而出现错误
- python - 从另一个函数调用函数内定义的变量而不使用全局
- python - 在我的课堂上使用models.Model后,我得到'ImproperlyConfigured'错误Django
- java - pom文件配置打包外部/自定义jar文件在fat spring boot可执行jar文件中
- python - 偶尔调用 WMS 不会返回地图
- php - 消息:'未定义的偏移量' - 多个文件(图像)上传
- unity3d - Unity3d ProBuilder Spheres 导致高延迟?