首页
学习
活动
专区
工具
TVP
发布

绘制频率分布直方图的三种方法,总结的很用心!

直方图能帮助迅速了解数据的分布形态,将观测数据分组,并以柱状条表示各分组中观测数据的个数。简单而有效的可视化方法,可检测数据是否有问题,也可看出数据是否遵从某种已知分布。

本次案例通过生成深圳市疫情个案数据集中所有患者的年龄参数直方图。

分别使用Matplotlib、Pandas、Seaborn模块可视化Histogram。

其中,Matplotlib和Pandas样式简单,看上去吸引力不大。Seaborn可往单变量直方图上添加很多东西,更美观,pandas可成组生成直方图。

导入库/数据

Matplotlib模块

Pandas模块

pandas也提供了一个方便的.value_counts() 方法,用来计算一个非空值的直方图,并将之转变成一个pandas的series结构:df.年龄.value_counts()

Seaborn模块

Python实现histogram方法

附函数语法及参数含义

Matplotlib模块中hist函数

Plt.hist(x,bins=10,range=None,normed=False,weights=None,cumulative=False,bottom=None,histtype=’bar’,align=’mid’,orientation=’vertical’,rwidth=None,log=False,color=None,edgecolor=None,label=None,stacked=False)

1)、x:指定要绘制直方图的数据。

2)、bins:指定直方图条形的个数。

3)、range:指定直方图数据的上下界,默认包含绘图数据的最大值和最小值。

4)、normed:是否将直方图的频数转换成频率。

5)、weights:该参数可为每一个数据节点设置权重。

6)、cumulative:是否需要计算累积频数或频率。

7)、bottom:可以为直方图的每个条形添加基准线,默认为0.

8)、histtype:指定直方图的类型,默认bar,其他八日stacked、step和stepfilled。

9)、align:设置条形边界的对齐方式,默认mid,另外left和right。

10)、orientation:设置直方图的摆放方向,默认vertical垂直方向。

11)、rwidth:设置直方图条形的宽度。

12)、log:是否需要对绘图数据进行log变换。

13)、color:设置直方图的填充色。

14)、edgecolor:设置直方图边框色。

15)、label:设置直方图的标签,可通过legend展示图例。

16)、stacked:当有多个数据时,是否需要将直方图呈堆叠摆放,默认水平摆放。

Seaborn模块

Sns.distplot(x,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)

1)、x:指定绘图数据,可以是序列、一维数组或列表。

2)、bins:指定直方图条形的个数。

3)、hist:bool类型的参数,是否绘制直方图,默认True。

4)、kde:bool类型的参数,是否绘制核密度图,默认True。

5)、rug:bool类型的参数,是否绘制须图,(如果数据比较密集,该参数比较有用)默认False。

6)、fit:指定一个随机分布对象,需调用scipy模块中随机分布函数,用于绘制随机分布概率密度曲线。

7)、hist_kws:以字典形式传递直方图的其他修饰属性,如填充色、边框色、宽度等。

8)、kde_kws:以字典形式传递核密度图的其他修饰属性,如线的颜色、线的类型等。

9)、rug_kws:以字典形式传递须图的其他修饰属性,如线的颜色、线的宽度等。

10)、fit_kws:以字典形式传递须图的其他修饰属性,如线的颜色、线的宽度等。

11)、color:指定图颜色,除了随机分布曲线的颜色。

12)、vertical:是否将图形垂直显示,默认True。

13)、norm_hist:是否将频数更改为频率,默认False。

14)、axlabel:用于显示轴标签。

15)、label:指定图形图例,需要结合plt.legend()一起使用。

16)、ax:指定子图的位置。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200208A0PB2M00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券