【问题标题】:Splitting data into bins in histplot在 histplot 中将数据拆分为 bin
【发布时间】:2021-12-19 11:54:21
【问题描述】:

我对 sns.histplot() 有疑问。据我了解,bins 参数应该指示图中应该有多少个 bin。这是一些代码来可视化奇怪的(至少对我而言)行为。

    d = {'col1': [1, 2, 3, 4, 5, 6, 7, 8, 9 , 10 , 11 , 12, 13, 14, 15], 'col2': [1, 1, 1, 1, 1, 1, 2, 2, 2 , 2 , 2, 2, 2, 2, 2]}
    df = pd.DataFrame(data=d)
    sns.histplot(data=df, x='col1', multiple='dodge', hue='col2', binwidth=2, bins=8)

我在原始代码中遇到了几乎相同的问题:

hist = sns.histplot(data=Data, x=y_data, multiple='dodge', ax=axes[0], hue=i[2][1], binwidth=2, bins=10)

如您所见,只有一个 bin 的数据有其最小值和标准,但它没有分成我声明的 bin 数量。为什么这不将数据拆分为提供的 bin 数量?如何更改代码以确保箱数恒定?

【问题讨论】:

  • 在你的第二个情节中,你应该省略bin_width=2,因为它会使条形太宽。栏杆太宽了,只有最高的可以看到,其余的都被挡住了。宽度以 x 轴上显示的坐标测量(介于 11.75 和 13.50 之间,而您的数据仅介于 11.6 和 12.2 之间)。
  • 对于第一部分我打赌你想要discrete=True

标签: python python-3.x pandas matplotlib seaborn


【解决方案1】:

我认为问题在于 binwidth 参数。也许只是尝试删除该参数,或将其设置为较小的值(0.2 或 0.1)。

【讨论】:

  • 哦,我从来没想过。删除此参数允许更改 bin 的数量
【解决方案2】:

来自docs,关于binwidth参数:

每个 bin 的宽度,覆盖 bins,但可以与 binrange 一起使用。

因此您不能同时指定binsbinwidth

【讨论】:

    猜你喜欢
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    相关资源
    最近更新 更多