python导入数据画直方图加正态曲线_Python数据分析入门日记Day20(数据绘图库Matplotlib:直方图...)

Python数据分析入门日记Day20
——数据绘图库Matplotlib:直方图
祝我的所有读者们新年快乐!
今天学习利用数据绘图库Matplotlib绘制最后一种图表——直方图。直方图能够展示数据呈现某种分布,运用统计学知识可以完成某种假设。老样子,先来学习一下绘制直方图的函数hist()。
1、hist()函数的参数解读
其中,x为指定绘制直方图的数据,bins指定条形图中直方的个数,range设定绘制直方图数据的上下界,normed是否将频数转化为频率,默认值为False,weight表示是否设定权重,cumulative表示是否计算累计频数,默认为False,bottom为条形图添加基准线,默认为0,histtype指定直方图类型,默认为”bar”(条形),align规定对齐方式。默认是”居中”,orientation设置直方图摆放的方向,默认为”vertical”(垂直摆放),rwidth设置直方图条形宽度的百分比,log是否要对数据进行对数变换,color设置填充色,label设置标签,stacked是否需要将直方图堆叠摆放。
2、一元直方图的绘制
案例:住房状况调查
利用之前学习SPSS时用到过的住房状况调查.xlsx数据,完成直方图的绘制。
首先,导入所要用的工具库,做中文乱码处理后,导入数据并查看数据的前五行。(数据集中”Age”一列变量表示”年龄”)
对住户的年龄进行直方图的绘制,代码如下:
最终显示直方图效果:
【python导入数据画直方图加正态曲线_Python数据分析入门日记Day20(数据绘图库Matplotlib:直方图...)】可以大致判断住户的年龄分布呈正态分布。
接下来,修改组距(将年龄组距修改为5岁),绘制累计频率直方图,过程如下:
输出累计频率直方图:
从住户年龄的累计频率直方图中可以看出,45岁以下的住户占比超过60%。
当然,如果想要研究住户年龄是否成正态分布,我们知道还要绘制两条曲线,一条是理论的正态分布曲线,另一条是核密度曲线。然后比较两条线的拟合程度,越吻合说明数据呈正态分布越明显。那就在直方图的基础上添加两条曲线。
首先,要把频数直方图改为频率直方图:
绘制正态分布曲线和核密度曲线:
输出效果图:
可以看出,住户年龄分布与正态分布是存在偏差的,所以住户年龄的分布并不服从正态分布。
3、二元直方图的绘制
依旧用上述案例中的住户年龄这一变量中数据绘制直方图,这次用性别进行区分,查看男性住户与女性住户的年龄分布差异。首先对性别数据按照男女分别进行提取,然后实现对二元直方图的绘制。
最终绘制出的直方图效果如下:
发现男性住户和女性住户的年龄分布一致,但男性住户的数量明显多于女性,住户的年龄主要集中在30~40岁之间。
关于直方图绘制的学习就到这里,这也是本人在这个寒假的最后一篇学习笔记啦!你们懂的,如果你有什么好的意见和建议一定一定要联系我。以后有机会我还希望将自己学习过的有关数据可视化的Seaborn和Pyecharts的内容整理分享给大家,当然,如果有特别感兴趣的朋友可以私我哦,嘻嘻~
最后,我想说一些话。
2019年1月15日至2月9日,历时25天,800多行代码,23000字的文案,Python数据分析入门日记于今日正式完结,公众号的总用户数由起初的140人增至如今306人(当然还在持续上升),非常非常感谢每一位阅读推文的朋友!
能够在公众号上写这些日记、分享自己的所学是我一直以来想做的一件事儿,可是以前总是会偷懒、觉得很麻烦,但在刘老师的鼓励下,我开始完成这个目标。这段日子里,打开电脑、敲代码、整理数据、编排文案、回复留言等等这些工作仿佛成为我的习惯,就算每日只增加一个粉丝,都能让我开心大半天,我深深地体会了“做自己喜欢的事情,不算熬”这句话。
我已经开始舍不得大家伙儿啦,那么,日后如果想要翻看我的笔记,在”西京统协”公众号页面的菜单栏(右下角)点击”学习笔记”就可以哦!还是祝大家新年快乐吧!希望所有热爱数据科学与统计的人儿们都能完成自己的梦想,达到自己的目标!谢谢大家!
我是西京学院应用统计学专业大三的学生,我叫姚蒙嘉,也是你们熟悉的Ovaltine阿华田、原数统协会可爱的会长。爱你们~
Ovaltine

    推荐阅读