每个图上的seaborn distplot不同的条宽度

时间:2019-10-14 04:16:08

标签: python matplotlib seaborn

很抱歉提供图片,但是我认为这是显示我的问题的最佳方法。enter image description here

如您所见,所有箱柜宽度都不同,据我了解,它显示了rent_hours的范围。我不确定为什么即使我没有设置任何数字,箱子的宽度也不同。

我的代码如下:

figure, axes = plt.subplots(nrows=4, ncols=3)
figure.set_size_inches(18,14)
plt.subplots_adjust(hspace=0.5)

for ax, age_g in zip(axes.ravel(), age_cat):
    group = total_usage_df.loc[(total_usage_df.age_group == age_g) & (total_usage_df.day_of_week <= 4)]
    sns.distplot(group.rent_hour, ax=ax, kde=False)
    ax.set(title=age_g)
    ax.set_xlim([0, 24])

figure.suptitle("Weekday usage pattern", size=25);

其他问题:

Seaborn : How to get the count in y axis for distplot using PairGrid在这里它说kde = False使y轴计数,但是在文档中http://seaborn.pydata.org/generated/seaborn.distplot.html,它使用kde = False并且似乎仍然显示其他内容。如何设置y轴以显示计数?

我尝试过 sns.distplot(group.rent_hour,ax = ax,norm_hist = True),它似乎仍然提供了其他功能,而不是计数。

sns.distplot(group.rent_hour,ax = ax,kde = False)给我计数,但是我不知道为什么给我计数。

1 个答案:

答案 0 :(得分:1)

答案1:

来自documentation

  

norm_hist :布尔型,可选

     

如果为True,则直方图高度显示的是密度而不是计数。   如果绘制了KDE或拟合密度,则暗示了这一点。

因此,您还需要考虑箱体宽度,即计算曲线下的面积,而不仅仅是箱体高度的总和。

答案2:

# Plotting hist without kde
ax = sns.distplot(your_data, kde=False)

# Creating another Y axis
second_ax = ax.twinx()

#Plotting kde without hist on the second Y axis
sns.distplot(your_data, ax=second_ax, kde=True, hist=False)

#Removing Y ticks from the second axis
second_ax.set_yticks([])