百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

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...

取消回复欢迎 发表评论: