matplotlib绘制常见统计图形(一) matplotlib统计出现次数
qiyuwang 2024-10-10 11:28 23 浏览 0 评论
之前的文章一图入门matplotlib 中我们学习了matplotlib中常见图表元素的绘制方法,所有操作都通过可以调用plt的函数实现。本节继续来学习使用matplotlib中生成各种常见的统计图表。后台回复“统计图一”可以获取本文全部代码。
柱形图
matplotlib中使用bar函数绘制柱形图。如果遇到中文无法显示的问题,可以参考本次推送的次条文章。
参数含义如下:
说明两点。一是上面代码中我们用plt.text为柱体添加了文字标签。ha和va是horizontalalignment和verticalalignment的缩写,分别表示水平对齐和垂直对齐,其他参数可以参见下面的链接:
https://matplotlib.org/api/text_api.html#matplotlib.text.Text。
二是关于x传入字符串列表参数替代tick_label。参见下面代码,注意x的值和前面代码的差别,实现的效果是一样的。
水平方向柱形图
水平方向柱形图对应的函数是barh,参数和bar是类似的。上面的图改成水平方向的效果如下:
barh的第一个参数是y轴上标签的位置(或者值),第二个参数是我们要展示的数据。此时需要用height参数而不是width来控制柱体的“高度”,相应的数字标签的坐标也需要重新设置,其余的参数和前面一致。
堆积柱形图
堆积柱状图本质上还是柱状图,所以还是使用bar和barh函数。但是要在原来的基础上再堆起来一个,所以需要调用两次绘图函数,并且在第二次调用的时候通过bottom参数和left参数指定需要堆叠。例子如下:
- 垂直方向堆积
- 水平方向堆积
- 正负堆积
并列柱状图
同堆积柱状图一样,并列柱状图的实现也是需要调用两次bar()(或者barh())函数,不同的是此时需要通过控制x参数(或y参数)使其左右(或上下)并列。
- 左右并列
- 上下并列
直方图
柱形图描述的是离散型数据的分布,柱体之间有空隙。直方图则用来展示连续型数据的分布,柱体之间没有空隙。使用hist()函数绘制直方图。hist函数的主要参数如下表所示:
随机生成一批140到200的数据,表示学生的身高。每10个一组,看它们的分布情况。
频数直方图
频率直方图
在上面代码基础上增加density参数,设置为True则可以显示频率直方图。
累计频率直方图
在上面基础上增加cumulative=True参数,则可以绘制累计分布频率直方图。
水平方向直方图
水平方向的直方图通过orientation=horizontal参数控制,如下图所示。
堆积直方图
堆积直方图首先要准备好两组数据,并将两组数据进行“合并”成数组的形式,颜色和标签也要进行相应的合并。然后增加stacked=True参数,参考下面代码:
- 垂直方向堆积
- 水平方向堆积
并列直方图
并列直方图只需要在堆积直方图基础上将stacked改为False。
- 垂直方向并列
- 水平方向并列
分裂式饼图
饼图是用来展示比例分布特征的图形,主要使用pie()函数来实现。
使用的参数含义如下表所示:
非分裂式饼图
与分列式饼图相比,只需去掉explode参数即可使饼片不分裂。下面代码同时指定了pctdistance和labeldistance控制百分比和文本标签显示的位置,它们的数值是相对于半径而言的。
环形饼图
环形饼图的实现主要是通过控制wedgeprops参数来实现,它是指组成扇形的饼片对象,可以传入字典参数设置宽度,实现环形效果。如下面代码所示:
给wedgeprops传入一个字典参数,分别设置了宽度为0.4和边界颜色为白色。其中宽度是参考半径显示的,当设置为和半径一样时,就不会显示环形了。此外还设置了textprops参数,控制了环形上的文字颜色。
内嵌环形饼图
将饼图进行嵌套,可以显示多组定性数据的比例分布。同前面的堆积图类似,内嵌的环形图也需要通过画两个环形来实现。这里注意要先画大的环,再画小的环,因为后面绘制的会覆盖前面绘制的。我们设置大环半径为1,小环半径为0.7。
接下来我们对上面的内嵌环图进行修饰。
实际上,pie()函数是有返回值的,分别是饼片列表,文字标签列表,数值标签列表。有了这些返回值,就可以对它的格式进行设置了。
比起前面的图,增加了图例,更改了显示数值的大小和粗细。具体实现的方法是:给pie()函数设置了返回值,通过setp()函数设置文字的大小和粗细。图例设置时,指定了图例元素和文字标签,用bbox_to_anchor将图例显示在饼图之外,四个参数的前两个是图例的起始坐标,后两个是宽度和高度,由于loc设置为center left,意味着(0.91,0)这个点是图例内左边中间的点(可以认为圆心的位置是坐标原点)。最后我们还用前面学习的注释函数标注了内外环对应的果酱品类。这样就显示了两种果酱配料比例的饼状图。
小结
本节我们学习了matplotlib实现柱形图,直方图,饼图的方法,主要有bar(),hist(),pie()三个函数,通过相关参数的设置能够实现不同的效果。后台回复“统计图一”可以获取本文全部代码。
相关推荐
- 在Word中分栏设置页码一页两个页码的技巧!
-
施老师:在正常情况下,Word文档中一页只会出现一个页码。但在某种情况下,比如说:用了分栏后,我们希望一页中出现两个页码,那应该如何实现呢?今天,就由宁双学好网施老师来为大家讲一下,利用域来实现一页两...
- 如何在关键时刻向上自荐(如何在关键时刻做出正确选择)
-
抓住机会,挺身而出有种时刻叫“关键时刻”,关键时刻,作为一个认为自己有能力的、训练有素的人,应该考虑挺身而出,甚至应该不考虑就挺身而出。...
- WPS Word:跨页的文档表格,快速调整为一页。#Excel
-
如何快速将跨页的文档表格调整为一页?需要根据两种情况分别处理。如果表格所有行的行高相同,调整为一页的方法有两种。第一种方法是将光标移动到表格内,然后将鼠标移动到表格右下角的方框处,按住鼠标左键向上拖动...
- word文档插入下一页分节符(word下一页分页符)
-
在word文档中,对文档页面进行分页是特别常见的操作,其中的下一页分节符也是用得比较多的,但是一些人不太清楚在哪里设置,也不知道它具体能实现的功能是什么。接下来看看如何在word文档中插入下一页分节符...
- word文档如何设置某一页纸张的方向
-
word文档页面方向有横向和纵向,纵向是默认的纸张方向,有时我们需要将页面设置为横向,或只设置其中某一页方向,应该怎么操作呢?一起来看看下面的详细介绍第一步:...
- word怎么单独设置一页为横向(word2019怎样设置单独一页为横向)
-
word里面其中一页可以改为横向的吗?经过实际操作发现是完全可以的。...
- Word如何设置分栏,如何一页内容同时显示一栏和两栏
-
我们使用Word文档,有时需要用到两栏的排版,甚至一页内容同时包含一栏和两栏的排版,这种格式怎么设置呢?具体步骤如下:首先是两栏排版的设置,直接点击Word文件上方工具栏【布局】,选择【分栏】下面的【...
- Word怎么分页?这三个方法可以帮到你
-
我们不仅可以利用Word编辑文档,还可以编辑文集呢。但是有时候会出现两个部分的文章长短不一,我们需要对文档进行分页处理。这样可以方便我们对文档进行其他操作。那么Word怎么分页呢?大家可以采用下面这...
- Word内容稍超一页,如何优化至单页打印?
-
如何将两页纸的内容,缩到一页打印呢?有时候一页纸多一点内容,我们完全可以缩一下,放到一页来打印。...
- [word] word 表格如何跨行显示表头、标题
-
word表格如何跨行显示表头、标题在Word中的表格如果过长的话,会跨行显示在另一页,如果想要在其它页面上也显示表头,更直观的查看数据。难道要一个个复制表头吗?当然不是,教你简单的方法操作设置Wo...
- Word表格跨页如何续上表?(word如何让表格跨页不断掉)
-
长文档的表格跨页时,你会发现页末空白太多了,这时要怎么调整?选中整张表格,右击【表格属性】,点击【行】选项,之后勾选【允许跨页断行】,点击确定即可解决空白问题。...
- Word怎么连续自动生成页码,操作步骤来了!
-
Word怎么连续自动生成页码,操作步骤来了!...
- word文档怎么把两页合并成一页内容?教你4种方法
-
word怎么把两页合并成一页?word怎么把两页合并成一页?用四种方法演示一下。·方法一:把这一个文档合并成一页,按ctrl加a全选文档,然后右键点击段落,弹出的界面行距改成固定值,磅值可以改小一点,...
- 如何将Word中的一页的纸张方向设置为横向?这里提供详细步骤
-
默认情况下,MicrosoftWord将页面定向为纵向视图。虽然这在大多数情况下都很好,但你可能拥有在横向视图中看起来更好的页面或页面组。以下是实现这一目标的两种方法。无论使用哪种方法,请注意,如果...
- Word横竖混排你会玩吗?(word横排竖排混合)
-
我们在用Word排版的时候,一般都是竖版格式,但偶尔会需要到一些特殊的版式要求,比如文档中插入的一个表格,横向的内容比较多,这时就需要用到横版,否则表格显示不全。这种横竖版混排的要求,在Word20...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- navicat无法连接mysql服务器 (65)
- 下横线怎么打 (71)
- flash插件怎么安装 (60)
- lol体验服怎么进 (66)
- ae插件怎么安装 (62)
- yum卸载 (75)
- .key文件 (63)
- cad一打开就致命错误是怎么回事 (61)
- rpm文件怎么安装 (66)
- linux取消挂载 (81)
- ie代理配置错误 (61)
- ajax error (67)
- centos7 重启网络 (67)
- centos6下载 (58)
- mysql 外网访问权限 (69)
- centos查看内核版本 (61)
- ps错误16 (66)
- nodejs读取json文件 (64)
- centos7 1810 (59)
- 加载com加载项时运行错误 (67)
- php打乱数组顺序 (68)
- cad安装失败怎么解决 (58)
- 因文件头错误而不能打开怎么解决 (68)
- js判断字符串为空 (62)
- centos查看端口 (64)