前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据可视化(6)-Seaborn系列 | 直方图distplot()

数据可视化(6)-Seaborn系列 | 直方图distplot()

原创
作者头像
数据分析可视化
修改2019-09-25 15:53:11
14.5K0
修改2019-09-25 15:53:11
举报

直方图

seaborn.distplot() 直方图,质量估计图,核密度估计图

该API可以绘制分别直方图和核密度估计图,也可以绘制直方图和核密度估计图的合成图 通过设置默认情况下,是绘制合成图,设置情况图下:

hist=True:表示要绘制直方图(默认情况为True),若为False,则不绘制

kde=True:表示要绘制核密度估计图(默认情况为True),若为False,则绘制

函数原型

代码语言:txt
复制
seaborn.distplot(a, bins=None, hist=True, 
                 kde=True, rug=False, fit=None, 
                 hist_kws=None, kde_kws=None, rug_kws=None,
                 fit_kws=None, color=None, vertical=False,
                 norm_hist=False, axlabel=None,
                 label=None, ax=None)

参数解读

代码语言:txt
复制
a: Series, 一维数组或列表

要输入的数据,如果设置name属性,则该名称将用于标记数据轴;

以下是可选参数:
bins: matplotlib hist()的参数 或者 None
作用:指定直方图规格,若为None,则使用Freedman-Diaconis规则,
该规则对数据中的离群值不太敏感,可能更适用于重尾分布的数据。
它使用 bin 大小  
[2∗IQR(X(:))∗numel(X)(−1/4),2∗IQR(Y(:))∗numel(Y)(−1/4)][2∗IQR(X(:))∗numel(X)(−1/4),2∗IQR(Y(:))∗numel(Y)(−1/4)] ,
其中 IQR 为四分位差。

hist:bool
是否绘制(标准化)直方图

kde:bool
是否绘制高斯核密度估计图

rug:bool
是否在支撑轴上绘制rugplot()图

{hist,kde,rug,fit} _kws:字典
底层绘图函数的关键字参数

color:matplotlib color
该颜色可以绘制除了拟合曲线之外的所有内容

vertical:bool
如果为True,则观察值在y轴上,即水平横向的显示

案例教程

代码语言:txt
复制
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
sns.set()
#构建数据
np.random.seed(0)
x = np.random.randn(100)
"""
案例1:显示默认绘图,其中包含内核密度估计值和直方图
"""
sns.distplot(x,kde=True,hist=False)
plt.show()
代码语言:txt
复制
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
sns.set()
#构建数据
np.random.seed(0)
x = np.random.randn(100)
# 使用pandas来设置x 轴标签 和y 轴标签
x = pd.Series(x, name="x variable")
"""
案例2:绘制直方图和核函数密度估计图
"""
sns.distplot(x)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
sns.set()
#构建数据
np.random.seed(0)
x = np.random.randn(100)
"""
案例3:绘制核密度估计和地图
"""
sns.distplot(x, rug=True, hist=False)
plt.show()
代码语言:txt
复制
from scipy.stats import norm
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
sns.set()
#构建数据
np.random.seed(0)
x = np.random.randn(100)
"""
案例4:绘制直方图和最大似然高斯分布拟合图
"""
sns.distplot(x, fit=norm, kde=False)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
sns.set()
#构建数据
np.random.seed(0)
x = np.random.randn(100)
"""
案例5:绘制水平直方图 (即在垂直轴上绘制分布)
"""
sns.distplot(x, vertical=True)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
sns.set()
#构建数据
np.random.seed(0)
x = np.random.randn(100)
"""
案例7:改变绘图元素的颜色
"""
sns.set_color_codes()
sns.distplot(x, color="y")
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
sns.set()
#构建数据
np.random.seed(0)
x = np.random.randn(100)
# 制定一些绘图参数
sns.distplot(x, rug=True, rug_kws={"color": "g"},
             kde_kws={"color": "k", "lw": 3, "label": "KDE"},
             hist_kws={"histtype": "step", "linewidth": 3,
                       "alpha": 1, "color": "g"})
plt.show()

案例地址

案例代码已上传:Github https://github.com/Vambooo/SeabornCN

整理制作:数据分析与可视化学研社

更多分享,请关注公众号
更多分享,请关注公众号

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 直方图
  • 函数原型
  • 参数解读
  • 案例教程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档