三、distplot
seaborn中的distplot主要功能是绘制单变量的直方图,且还可以在直方图的基础上施加kdeplot和rugplot的部分内容,是一个功能非常强大且实用的函数,其主要参数如下:
a:一维数组形式,传入待分析的单个变量
bins:int型变量,用于确定直方图中显示直方的数量,默认为None,这时bins的具体个数由Freedman-Diaconis准则来确定
hist:bool型变量,控制是否绘制直方图,默认为True
kde:bool型变量,控制是否绘制核密度估计曲线,默认为True
rug:bool型变量,控制是否绘制对应rugplot的部分,默认为False
fit:传入scipy.stats中的分布类型,用于在观察变量上抽取相关统计特征来强行拟合指定的分布,下文的例子中会有具体说明,默认为None,即不进行拟合
hist_kws,kde_kws,rug_kws:这几个变量都接受字典形式的输入,键值对分别对应各自原生函数中的参数名称与参数值,在下文中会有示例
color:用于控制除了fit部分拟合出的曲线之外的所有对象的色彩
vertical:bool型,控制是否颠倒x-y轴,默认为False,即不颠倒
norm_hist:bool型变量,用于控制直方图高度代表的意义,为True直方图高度表示对应的密度,为False时代表的是对应的直方区间内记录值个数,默认为False
label:控制图像中的图例标签显示内容
使用默认参数进行绘制:
ax = sns.distplot(iris.petal_length)
修改所有对象的颜色,绘制rugplot部分,并修改bins为20:
ax = sns.distplot(iris.petal_length,color='r',
rug=True,
bins=20)
在上图的基础上强行拟合卡方分布并利用参数字典设置fit曲线为绿色:
from scipy.stats import chi2
ax = sns.distplot(iris.petal_length,color='r',
rug=True,
bins=20,
fit=chi2,
fit_kws={'color':'g'})
修改norm_hist参数为False使得纵轴显示的不再是密度而是频数(注意这里必须关闭kde和fit绘图的部分,否则纵轴依然显示密度),利用hist_kws传入字典调整直方图部分色彩和透明度,利用rug_kws传入字典调整rugplot部分小短条色彩:
ax = sns.distplot(iris.petal_length,color='r',
rug=True,
kde=False,
bins=20,
fit=None,
hist_kws={'alpha':0.6,'color':'orange'},
rug_kws={'color':'g'},
norm_hist=False)