开发者

Python利用matplotlib实现饼图绘制

开发者 https://www.devze.com 2022-12-05 14:18 出处:网络 作者: 编程简单学
目录前言1. 等高线图概述什么是饼图?饼图常用场景绘制等饼图步骤案例展示2. 饼图属性设置饼图的颜色设置标签设置突出部分设置填入百分比数值饼图旋转设置阴影3. 调整饼图的大小4. 添加图例5. 镂空饼图总结前言
目录
  • 前言
  • 1. 等高线图概述
    • 什么是饼图?
    • 饼图常用场景
    • 绘制等饼图步骤
    • 案例展示
  • 2. 饼图属性
    • 设置饼图的颜色
    • 设置标签
    • 设置突出部分
    • 设置填入百分比数值
    • 饼图旋转
    • 设置阴影
  • 3. 调整饼图的大小
    • 4. 添加图例
      • 5. 镂空饼图
        • 总结

          前言

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

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

          Python利用matplotlib实现饼图绘制

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

          1. 等高线图概述

          什么是饼图?

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

          饼图常用场景

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

          绘制等饼图步骤

          1. 导入matplotlib.pyplot模块
          2. 准备数据,可以使用numpy/pandas整理数据
          3. www.cppcns.com
          4. 调用pyplot.pie()绘制饼图
          5. 调用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()

          Python利用matplotlib实现饼图绘制

          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"))

          Python利用matplotlib实现饼图绘制

          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"})
          编程客栈

          Python利用matplotlib实现饼图绘制

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

          Python利用matplotlib实现饼图绘制

          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='wwww.cppcns.com'),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"kLkRZELUDk})

          Python利用matplotlib实现饼图绘制

          总结

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

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

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

          0

          精彩评论

          暂无评论...
          验证码 换一张
          取 消

          关注公众号