天天看点

matplotlib模块详解

matplotlib模块详解
matplotlib模块详解

程序

 生成图片:

matplotlib模块详解
matplotlib模块详解
matplotlib模块详解

pie(): matplotlib中绘制饼图的函数。第一个参数传入用于绘制饼图的数据列表,其他参数都是关键字参数。labels参数用于设置每个扇形的标签,说明每个扇形的数据归属。autopct参数用于设置饼图中的百分比,一般保留两位小数,传入"%1.2f%%"即可。colors参数用于设置每个扇形的颜色,与数据列表一一对应,传入一个与数据列表长度相等的列表。textprops参数用于设置标签和百分比的字体、大小等,传入一个字典。labeldistance参数用于设置标签与饼图的距离,默认值为1.1。

饼图将一个圆饼按照各分类的占比划分成多个扇形,整个圆饼代表数据的总量,每个扇形表示该分类占总体的比例大小,所有扇形相加的和等于100%。饼图适用于表示不同分类在总体中的占比情况,通过弧度大小来比较不同分类的占比大小,尤其在需要突出显示其中某一个部分的占比时。

上面的饼图绘制了2020年A国大选的票数占比情况,可以一目了然地看到候选人的得票占比情况。如果需要突出显示某位候选人的得票占比,可以对饼图进行分离展示。

matplotlib模块详解
matplotlib模块详解

创建图形,有x,y轴,有数字标识的正方体形式,此时没有设置字体,不能显示中文,并且终端报警告,没有字体

matplotlib模块详解

 x,y轴加字体属性,这样图片中 就显示中文了

matplotlib模块详解

修改字体,就报错了,

matplotlib模块详解

 虽然simsun.ttc文件在本地也找不到,但是就是能用

matplotlib模块详解

 这个目录下有很多字体,不知道咋用

matplotlib模块详解
matplotlib模块详解
matplotlib模块详解
matplotlib模块详解

 灵活,另一个优点:不污染全局字体设置

matplotlib模块详解
matplotlib模块详解

 直接给所有的加字体了

matplotlib模块详解

 简洁的用法。缺点:污染全局字体设置。(所以需要第二步骤)

 一行那里改不存在的字体不可以显示,这里的2行那里有没有,图片貌似都没变化

matplotlib模块详解
matplotlib模块详解
matplotlib模块详解
matplotlib模块详解

 灵活的用法。缺点:影响全局字体(所以需要第二步骤)

方式二用时才设置,且不会污染全局字体设置,更灵活

方式三、方式四不需要对字体路径硬编码,而且一次设置,多次使用,更方便。

matplotlib模块详解
matplotlib模块详解
matplotlib模块详解

宋体

SimSun

黑体

SimHei

微软雅黑

Microsoft YaHei

微软正黑体

Microsoft JhengHei

新宋体

NSimSun

新细明体

PMingLiU

细明体

MingLiU

标楷体

DFKai-SB

仿宋

FangSong

楷体

KaiTi

隶书

LiSu

幼圆

YouYuan

华文细黑

STXihei

华文楷体

STKaiti

华文宋体

STSong

华文中宋

STZhongsong

华文仿宋

STFangsong

方正舒体

FZShuTi

方正姚体

FZYaoti

华文彩云

STCaiyun

华文琥珀

STHupo

华文隶书

STLiti

华文行楷

STXingkai

华文新魏

STXinwei

matplotlib模块详解
matplotlib模块详解
matplotlib模块详解

在绘制饼图的pie()函数中,explode参数用于设置每个扇形到圆心的距离,传入一个与数据列表长度相等的列表,默认每个扇形到圆心的距离都是0,将想要分离展示的扇形距离设置成一个适合的值,如0.1,即可将该部分突出展示。为了展示效果更好,可以使用startangle参数对饼图进行旋转(如将分离的扇形旋转到左侧),给startangle参数传入一个角度,将饼图逆时针旋转对应的角度,startangle参数表示的是饼图的起始角度,默认为正右方向,即传统的x轴正方形,此方向表示0度,设置起始角度后可以实现旋转的效果。对扇形进行分离展示后,将shadow参数设置为True,给饼图添加阴影,使饼图更立体,饼图切分的效果会更好。

在对饼图进行分离后,饼图的布局会发生变化,为了控制饼图占用的区域是一个正方形,且避免饼图变成椭圆形,使用axis('equal')函数,传入'equal'参数。

在上一张饼图的基础上,经过设置后,将获胜者Biden的得票率突出显示,可以更突出地展示获胜者的得票占比。

matplotlib模块详解
matplotlib模块详解
matplotlib模块详解

要绘制环形的饼图,在绘制出饼图后,再次调用pie()函数绘制一个更小的纯白饼图即可,先后顺序不能相反。

在绘制纯白的饼图时,传入只有一个数据的列表,一条数据会占满整个饼图,占比100%,颜色设置为colors='w'。radius参数默认为1,如果第一张饼图的radius参数是1,设置白色饼图的radius参数小于1,得到的白色饼图就会小于第一张饼图。此外不需要设置其他参数,白色饼图不需要显示百分比,不需要显示标签等。

绘制完成小的白色饼图,环形效果就实现了,还需要调整第一张饼图的百分比的显示位置。在pie()函数中,pctdistance参数用于设置百分比显示离圆心的距离,默认值是0.6,设置环形效果时,可以将pctdistance参数增大,使百分比显示在环形的中间。同时,因为环形饼图是通过遮挡实现的,阴影展示不完全,看起来比较别扭,所以不设置shadow参数,去掉阴影。

matplotlib模块详解
matplotlib模块详解
matplotlib模块详解
matplotlib模块详解
matplotlib模块详解

加上参数fc改变为单一颜色

matplotlib模块详解

 加上颜色参数也可以

matplotlib模块详解
matplotlib模块详解
matplotlib模块详解
matplotlib模块详解
matplotlib模块详解
matplotlib模块详解

 4、堆叠柱状图

matplotlib模块详解
matplotlib模块详解
matplotlib模块详解

适用于如下课程表类似的结构。根据时间或者某个序列,对一种或多类对象的数值,显示每个序列中这几类的数值和占比情况

matplotlib模块详解

 还是适用上图的情况

matplotlib模块详解
matplotlib模块详解
matplotlib模块详解
matplotlib模块详解
matplotlib模块详解
matplotlib模块详解

中文字体:https://www.jb51.net/article/134546.htm

https://www.cnblogs.com/bainianminguo/p/10952586.html

饼图:https://blog.csdn.net/weixin_43790276/article/details/109684441

官网图例子:https://matplotlib.org/gallery/index.html

cpu图:https://www.it610.com/article/1304777370737086464.htm

动态cpu:http://www.zzvips.com/article/145005.html

展示图片在html页面:https://www.cnblogs.com/amize/p/15060978.html

绘图知识点:https://www.cnblogs.com/zhizhan/p/5615947.html

菜鸟教程:https://www.runoob.com/matplotlib/matplotlib-pie.html

matplotlib柱形图:https://blog.csdn.net/qq_29721419/article/details/71638912