IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 第五章 使用 matplotlib 绘制饼图 -> 正文阅读

[人工智能]第五章 使用 matplotlib 绘制饼图

系列文章目录

第一章 使用 matplotlib 绘制折线图
第二章 使用 matplotlib 绘制条形图
第三章 使用 matplotlib 绘制直方图
第四章 使用 matplotlib 绘制散点图
第五章 使用 matplotlib 绘制饼图
第六章 使用 matplotlib 绘制热力图
第七章 使用 matplotlib 绘制堆叠条形图
第八章 使用 matplotlib 在一个画布内绘制多个图


前言

上一章我们讲述了散点图的绘制,本章我们来讲述饼图的绘制。


一、什么是饼图?

饼图,或称饼状图,是一个将圆形划分为几个扇形的统计图表。在饼图中,每个扇形的弧长大小,表示该种类占总体的比例,这些扇形合在一起刚好是一个完整的圆形。

饼图最显著的功能在于表现”占比“。习惯上,人们也用饼图来比较扇形的大小,从而获得对数据的认知。但是,由于人类对“角度”的感知力并不如“长度”,在需要准确的表达数值(尤其是当数值接近、或数值很多)时,饼图常常不能胜任,建议用柱状图代替。

使用时,须确认各个扇形的数据加起来等于 100%;避免扇区超过 5 个,尽量让图表简洁明了。


二、饼图的绘制

下面我们通过例子来看饼图的绘制,示例代码如下:

import matplotlib.pyplot as plt

plt.style.use('fivethirtyeight')

languages = ['JavaScript', 'HTML/CSS', 'SQL', 'Python', 'Java']
popularity = [59219, 55466, 47544, 36443, 35917]

plt.pie(popularity)

plt.tight_layout()
plt.show()

在上面的代码中,我们只要将一个列表传入到 pie 函数中,便可以绘制一个饼图。代码执行后得到的图形如下图所示:
在这里插入图片描述
从上面的饼图中我们不知道每个扇形所代表的数据,下面来为每个扇形打上标签。

import matplotlib.pyplot as plt

plt.style.use('fivethirtyeight')

languages = ['JavaScript', 'HTML/CSS', 'SQL', 'Python', 'Java']
popularity = [59219, 55466, 47544, 36443, 35917]

plt.pie(popularity, labels=languages)

plt.tight_layout()
plt.show()

为了给每个扇形打上标签,我们只需要传入参数 labels 即可。代码执行后得到的图形如下图所示:
在这里插入图片描述
除了给每个扇形打上标签之外,我们还可以把每个扇形的占比标在图形上,示例代码如下:

import matplotlib.pyplot as plt

plt.style.use('fivethirtyeight')

languages = ['JavaScript', 'HTML/CSS', 'SQL', 'Python', 'Java']
popularity = [59219, 55466, 47544, 36443, 35917]

plt.pie(popularity, labels=languages, autopct='%1.1f%%')

plt.tight_layout()
plt.show()

上面的代码中,我们通过参数 autopct 为每个扇形标上占比。代码执行后得到的图形如下图所示:
在这里插入图片描述
上图中扇形从大到小排列的方向是逆时针的,一般情况下,我们比较习惯顺时针的方向,下面我们通过参数来设置成顺时针方向,示例代码如下:

import matplotlib.pyplot as plt

plt.style.use('fivethirtyeight')

languages = ['JavaScript', 'HTML/CSS', 'SQL', 'Python', 'Java']
popularity = [59219, 55466, 47544, 36443, 35917]

plt.pie(popularity, labels=languages, autopct='%1.1f%%', counterclock=False, startangle=90)

plt.title('top5 编程语言占比')
plt.tight_layout()
plt.show()

上面代码中,通过设置参数 counterclock 为 False,使得方向改为顺时针方向,通过设置参数 startangle 为 90,将最大扇形放在 12 点钟方向。代码执行后得到的图形如下图所示:
在这里插入图片描述
有时候,为了强调某一个扇形,我们会让这个扇形脱离整个圆形。示例代码如下:

import matplotlib.pyplot as plt

plt.style.use('fivethirtyeight')

languages = ['JavaScript', 'HTML/CSS', 'SQL', 'Python', 'Java']
popularity = [59219, 55466, 47544, 36443, 35917]

plt.pie(popularity, labels=languages, autopct='%1.1f%%', 
        counterclock=False, startangle=90,explode=[0,0,0.1,0,0])

plt.title('top5 编程语言占比')
plt.tight_layout()
plt.show()

在上面的代码中,我们通过设置参数 explode 来强调 SQL 这个扇形,要强调那个扇形,就把相应的值设置成非 0。代码执行后得到的图形如下图所示:
在这里插入图片描述


三、应用场景

1.适用场景

  • 想要突出表示某个部分在整体中所占比例,尤其该部分所占比例达到总体的25%或50%时。
  • 分类数量最好小于5个。
  • 各不同分类间的占比差异明显。
  • 需要确定的图表绘制空间大小(不会随着分类增多有增大画布空间)。

2.不适用场景

  • 如果变量之间相互独立,并不构成一个整体,那么不可以使用饼图。
  • 饼图不能用来表现趋势。
  • 由于饼图用面积取代了长度,从而加大了对各个数据进行比较的难度。因此,当需要对数据进行比较,分清孰大孰小,尤其是当数据接近时,条形图更加合适。
  • 当类别过多时,不建议使用饼图,否则阅读将会很差。

四、总结

本章我们讲述了饼图的绘制以及饼图的适用场景和不适用场景。

上一章 使用 matplotlib 绘制散点图

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章           查看所有文章
加:2022-04-22 18:36:57  更:2022-04-22 18:41:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/6 17:18:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码