首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pandas知识点-绘制统计图

Pandas知识点-绘制统计图

作者头像
Python碎片公众号
发布2021-04-09 11:20:41
3.4K0
发布2021-04-09 11:20:41
举报

使用matplotlib可以绘制各种各样的统计图,Pandas对matplotlib中的绘图方法进行了更高层的封装,使用起来更简单方便。

本文介绍Pandas中最基本的几种统计图的绘制方法,都非常常用。

本文使用的数据来源于网易财经,具体下载方法可以参考:Pandas知识点-DataFrame数据结构介绍

一、数据准备

数据文件是600519.csv,将此文件放到代码同级目录下,从文件中读取出数据。

为了使数据简洁一点,删除了一些列,设置“日期”为索引。

读取的原始数据如上图,本文基于这些数据来绘制统计图。

二、绘制折线图

Pandas中直接用Series对象或DataFrame对象调用plot()方法既可以绘制统计图。

kind: 使用kind参数指定图形的种类,line表示折线图,scatter表示散点图,bar表示柱状图,barh表示水平柱状图,hist表示直方图,pie表示饼图。这六种图形是最常用的图形,kind还支持其他图形,如box表示箱图等。

figsize: 使用figsize参数设置图形的大小,参数格式为(width, height)。

xlabel: 图形中会显示x轴的标签,可以使用xlabel参数修改或设置不显示,ylabel同理。

绘图时为了显示(show()方法)图形,会导入matplotlib.pyplot(as plt),可以使用plt对象的xticks()方法设置x轴刻度值,刻度值的倾斜度等,yticks()同理。可以使用text()方法添加图形中的数值标签。

kind参数默认为line,在绘制折线图时可以不指定kind参数。

linestyle: 使用linestyle参数设置折线图的线型,如'--'表示虚线,'-.'表示点线等。

marker: 使用marker参数设置折线图中数值点的样式,可以设置'o','*'等。

用DataFrame对象绘制折线图时,有多组数据,调用plot()方法会自动绘制出条折线图,并且自动设置好图例,比matplotlib方便很多。

三、绘制散点图

设置kind参数为scatter即可绘制散点图。

需要注意的是,在Pandas中,scatter不支持Series对象,只支持DataFrame对象,所以不能用Series对象绘制散点图。

绘制散点图时,通过x参数和y参数指定散点图的x轴数据和y轴数据。x和y都是DataFrame中的列标签,绘图时会根据列标签读取对应列的数据。

s: 使用s参数设置散点图中点的大小。

在Pandas中,绘制图形除了在plot()中指定kind参数外,还可以通过plot链式调用对应的方法,如plot.scatter()表示绘制散点图,后面绘制柱状图、直方图、饼图等也可以用链式调用的方式。

alpha: 设置图形显示的透明度,默认是None,可以传入0~1之间的数,值越小越透明。

marker参数与折线图中的用法相同,当设置成'*'时,显示的图形为五角星,当然还有很多其他的类型,可以参考matplotlib中的markers模块。

c: c参数用于设置散点图的颜色,可以指定一个颜色,也可以设置成一个数组或浮点数,如例子中使用numpy生成一个随机的数组,颜色随机从cmap中获取。

cmap: cmap参数用于设置点的颜色热力图,默认为image.cmap,可以设置成自己需要的颜色类型,参考matplotlib中的colors模块。只有当颜色参数c设置成数组或浮点数时,cmap参数才有用。

设置cmap参数后,会在图形右边生成一个柱状的颜色渐变图,就像下图这样。此时x轴的刻度值会被自动隐藏,将colorbar参数设置成False,可以隐藏颜色渐变图,重新显示x轴刻度值。

s参数也可以设置成一个数组,如例子中也是用numpy生成一个随机的数组,使每个点的大小不一样。

四、绘制柱状图

使用plot链式调用bar()方法,或在plot()中设置kind为bar,都可以绘制柱状图。

width: width参数用于设置柱状图的宽度,默认为0.8,可以根据需要进行修改。柱状图的每一组柱子是独立的,所以中间留好适合的间距会更好,width一般都设置成小于1。

bottom: bottom参数用于设置柱状图的底部位置(使柱状图“上浮”),默认为0,这个参数一般不需要修改,保持0即可。设置bottom参数后,柱状图会沿y轴方向上移,如设置为200,则柱状图上移200,从y坐标为200的地方开始绘制,柱状图的长度不发生改变。例子中的0.5相对于2000多的数值差距太大,看不出来。

color: color参数用于设置柱状图的颜色,前面折线图和散点图是用c参数,有一点差异。当柱状图中有多组数据时,最好传入一个数组,使不同组的柱状图颜色不一样,方便区分。

五、绘制水平柱状

使用plot链式调用barh()方法,或在plot()中设置kind为barh,就可以绘制水平柱状图了,参数用法与bar()方法一样。当然,在设置x轴刻度值,y轴刻度值,数值标签等时要注意方向的转换。

六、绘制直方图

使用plot链式调用hist()方法,或在plot()中设置kind为hist,都可以绘制直方图。这里要强调的是,直方图不是柱状图,两者的应用场景完全不同。

绘制直方图前,要根据数据的分布设置好适合的组距,然后根据组距计算出组数。

bins: bins参数用于设置直方图的组数,传入计算的组数。

如果需要显示图例,使用plt对象的legend()方法设置即可。

七、绘制饼图

使用plot链式调用pie()方法,或在plot()中设置kind为pie,都可以绘制饼图(扇形图)。

饼图是用于展示数据占比的,所以要先确定数据是否符合预期,如果不符合要先进行处理。

autopct: autopct参数用于设置饼图中的百分比格式,如'%.2f%%'表示保留两位小数。

colors: colors参数用于设置每个扇形的颜色,与数据分类一一对应,传入一个长度与数据分类数相等的列表。

explode: explode参数用于设置每个扇形到圆心的距离,传入一个长度与数据分类数相等的列表,默认每个扇形到圆心的距离都是0,将想要分离展示的扇形距离设置成一个适合的值,如0.1,即可将该部分突出展示。

pctdistance: pctdistance参数用于设置百分比显示离圆心的距离,默认值是0.6,可以按需将pctdistance参数增大或减小。

textprops: textprops参数用于设置标签和百分比的字体、大小等,传入一个字典。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python 碎片 微信公众号,前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档