2015-04-22 118 views
6

使用distplot绘制直方图时,y轴的单位是多少?我绘制了不同的直方图和正常拟合,我发现在一种情况下,它的范围是0到0.9,而另一个范围是0到4.5。在Python中使用distplot

谢谢。

回答

6

help(sns.distplot)

norm_hist:BOOL,otional 如果真,直方图显示高度,密度,而不是数量。 如果绘制了KDE或拟合密度,则这是隐含的。

密度被标定,因此,曲线下面积为1,所以没有独立的贮藏将永远不会大于1(整个数据集)更高[2]。但KDE默认为开启和norm_hist覆盖,所以norm_hist改变Y单位只有当你明确把KDE关:

import matplotlib.pyplot as plt 
import numpy as np 
import seaborn as sns 

fig, axs = plt.subplots(figsize=(6,6), ncols=2, nrows=2) 
data = np.random.randint(0,20,40) 

for row in (0,1): 
    for col in (0,1): 
     sns.distplot(data, kde=row, norm_hist=col, ax=axs[row, col]) 

axs[0,0].set_ylabel('NO kernel density') 
axs[1,0].set_ylabel('KDE on') 
axs[1,0].set_xlabel('norm_hist=False') 
axs[1,1].set_xlabel('norm_hist=True') 

enter image description here

[2]澄清mwaskom,谢谢!

+2

这是有帮助的,但我认为这样做应该是明智的,因为密度是按比例缩小的,因此曲线下面积为1. – mwaskom

+0

谢谢cphlewis ... – Harry

+0

没问题,Harry。如果它回答你的问题,请检查它。 – cphlewis