Python利用matplotlib实现饼图绘制

 更新时间:2021年12月01日 15:23:06   作者:编程简单学  
Pyplot作为Matplotlib的子库,提供了和MATLAB差不多的绘图API。因此Pyplot作为常用的绘图模块,能很方便让用户绘制2D图表。本文将为大家介绍如何利用Matplotlib绘制饼图,感兴趣的小伙伴可以了解一下

前言

众所周知,matplotlib.pyplot 提供绘制不同表格绘制方法,如使用plot()方法绘制折线,bar()绘制柱

在matplotlib.pyplot 中还有一种图表用于直观表示占比情况的饼图,在matplotlib官网上也列举出非常多关于饼图的案例。

本期,我们将详细学习matplotlib 绘制饼图相关属性的学习,let's go~

1. 等高线图概述

什么是饼图?

  • 饼图将各项的大小与总项和的比例显示在一个圆里
  • 饼图展示通过不同大小,来确定各项的占比
  • 饼图相同颜色的数据标记组成一个数据系列
  • 饼图可分为三维饼图、复合饼图、分离饼图

饼图常用场景

  • 饼图可用在需要暂时各个部分构成比
  • 饼图可反映一个维度各项指标占总体的占比情况
  • 饼图适用在只看大体占比,不要数据精度的情况

绘制等饼图步骤

  1. 导入matplotlib.pyplot模块
  2. 准备数据,可以使用numpy/pandas整理数据
  3. 调用pyplot.pie()绘制饼图
  4. 调用axis方法调整x/y轴间距相等

案例展示

本期,我们将适用饼图来分析操作系统市场占比情况

案例数据准备:使用random.randint产生5个数值

import numpy as np
size = np.random.randint(0,100,5)

绘制饼图

import matplotlib.pyplot as plt\
 
plt.pie(size,labels=["Windows","MAC","Linux","Android","Other"])
 
plt.title("手机系统占比分析")
 
plt.show()

2. 饼图属性

设置饼图的颜色

关键字:colors

可取值选项:None或者颜色列表

颜色列表可以由如下组成:

  • 表示颜色的英文单词:如红色"red"
  • 表示颜色单词的简称如:红色"r",黄色"y"
  • RGB格式:十六进制格式如"#88c999";(r,g,b)元组形式

设置标签

关键字:labels

默认为:None

需要传入列表形式的值

设置突出部分

关键字:explode

默认为:None

需要传入列表数据

如果设置值后,其指定的部分会突出显示

设置填入百分比数值

关键字:autopct

默认为:None

可选择值形式:

  • 格式字符串如:'%1.1f%%'
  • 函数:可以调用函数内容

饼图旋转

从x轴逆时针旋转角度:startangle;默认为0,浮点类型

指定分数方向顺逆时针:counterclock;默认为True,bool类型

设置阴影

关键字:shadow

默认为False

在饼图下绘制出阴影

我们结合第一节的案例添加一些属性,需要显示占比数值,颜色显示指定颜色,突出MAC占比

plt.pie(size,labels=["Windows","MAC","Linux","Android","Other"],
autopct="%1.1f%%",
explode=[0,0.1,0,0,0],
colors=("r","blue","#88c999",(1,1,0),"0.5"))

3. 调整饼图的大小

我们在实际制作饼图时,会遇到改变饼图的大小,这是我们可以借助饼图属性关键字radius

radius:设置饼图半径大小

除此之外,我们还要使用textprops来控制显示的标签的大小

plt.pie(size,labels=["Windows","MAC","Linux","Android","Other"],autopct="%1.1f%%",
explode=[0,0.1,0,0,0],
colors=("r","blue","#88c999",(1,1,0),"0.5"),radius=0.5,textprops={'size':"smaller"})

4. 添加图例

我们在饼图中显示各项占比情况时,会在图表的旁边添加一组图例说明。

  • pyplot.pie()方法会返回patchee.Wedge列表、文本列表等数据
  • pyplot.legend()方法传入wedge元素和指定的labels标签
  • 同时可以同legend()方法bbox_to_anchor来设置图例的位置
La = ["Windows","MAC","Linux","Android","Other"]
 
def f(pct,n):
    num = int(round(pct*np.sum(n)))
    return "{:.1f}%\n{:d}w".format(pct,num)
 
wedges ,text,autotexts =plt.pie(size,autopct=lambda pct: f(pct,size),
        colors=("r","blue","#88c999",(1,1,0),"0.5"),textprops=dict(color='w'))
 
plt.legend(wedges,La,loc="right",bbox_to_anchor=(1,0,0.3,1))

5. 镂空饼图

在饼图中,我们有时候也用到嵌套镂空的饼图。

  • 嵌套可以多次调用pyplot.pie()方法
  • 镂空可以借助pyplot.pie()属性wedgeprops来进行设置
  • wedgeprops={"width":0.3,"edgecolor":'w'}
cmap = plt.get_cmap("tab20c")
plt.pie(size,
         colors=("r","blue","#88c999",(1,1,0),"0.5"),textprops=dict(color='w'),wedgeprops=dict(width=0.3,edgecolor='w'))
plt.pie(size,
         colors= cmap(np.arange(3)*5),radius=0.7,wedgeprops=dict(width=0.3,edgecolor='w'),textprops={'size':"smaller"})

总结

本期,对matplotlib.pyplot 绘制饼图pie()相关属性的学习。在绘制饼图时,我们会根据实际需求改变饼图的大小,嵌套饼图、添加柱状图等图形辅助查看

以上是本期内容,欢迎大佬们点赞评论,下期见~ 

以上就是Python利用matplotlib实现饼图绘制的详细内容,更多关于Python matplotlib 绘制饼图的资料请关注脚本之家其它相关文章!

相关文章

  • python3格式化字符串 f-string的高级用法(推荐)

    python3格式化字符串 f-string的高级用法(推荐)

    从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快!本文重点给大家介绍python3格式化字符串 f-string的高级用法,一起看看吧
    2020-03-03
  • Python可变参数函数用法实例

    Python可变参数函数用法实例

    这篇文章主要介绍了Python可变参数函数用法,实例分析了Python可变参数函数的定义与使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 详解用python写一个抽奖程序

    详解用python写一个抽奖程序

    这篇文章主要介绍了用python写一个抽奖程序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • 从django的中间件直接返回请求的方法

    从django的中间件直接返回请求的方法

    今天小编就为大家分享一篇从django的中间件直接返回请求的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • python实现俄罗斯方块游戏(改进版)

    python实现俄罗斯方块游戏(改进版)

    这篇文章主要为大家详细介绍了python实现俄罗斯方块游戏的改进版,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • python基础教程之python消息摘要算法使用示例

    python基础教程之python消息摘要算法使用示例

    这篇文章主要介绍了python中的消息摘要算法使用示例,需要的朋友可以参考下
    2014-02-02
  • 使用Python读取大文件的方法

    使用Python读取大文件的方法

    这篇文章主要介绍了使用Python读取大文件的方法,需要的朋友可以参考下
    2018-02-02
  • Python 实现选择排序的算法步骤

    Python 实现选择排序的算法步骤

    下面小编就为大家分享一篇Python 实现选择排序的算法步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python Asyncio库之asyncio.task常用函数详解

    Python Asyncio库之asyncio.task常用函数详解

    Asyncio在经过一段时间的发展以及获取Curio等第三方库的经验来提供更多的功能,目前高级功能也基本完善。本文主要介绍了Asyncio库中asyncio.task常用函数的使用,需要的可以参考一下
    2023-03-03
  • python基础之并发编程(三)

    python基础之并发编程(三)

    这篇文章主要介绍了详解python的并发编程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-10-10

最新评论