Piotr Nowakowski
Piotr Nowakowski

Reputation: 376

Splitting data into bins in histplot

I have a problem with sns.histplot(). As far as I understand, the bins parameter should indicate how many of the bins should be in the plot. Here is some code to visualize the strange (at least for me) behavior.

    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)

Example

I have almost the same problem in my original code where I have:

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

Original histogram

And as you can see, there is only one bin where data has its minimum and std, but it is not split into the number of bins I declared. Why is this not splitting data into the provided number of bins? How can I change code to ensure constant number of bins?

Upvotes: 1

Views: 1359

Answers (2)

Klemen Vrhovec
Klemen Vrhovec

Reputation: 221

I think the problem is the binwidth parameter. Maybe just try to delete that parameter, or set it to a smaller value (0.2 or 0.1).

Upvotes: 1

Simone
Simone

Reputation: 705

From the docs, regarding the binwidth parameter:

Width of each bin, overrides bins but can be used with binrange.

So you can't specify both bins and binwidth at the same time.

Upvotes: 1

Related Questions