Python 数据分析三剑客之 Matplotlib(七):饼状图的绘制

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个企业级项目。


Matplotlib 系列文章:

  • Python 数据分析三剑客之 Matplotlib(一):初识 Matplotlib 与其 matplotibrc 配置文件
  • Python 数据分析三剑客之 Matplotlib(二):文本描述 / 中文支持 / 画布 / 网格等基本图像属性
  • Python 数据分析三剑客之 Matplotlib(三):图例 / LaTeX / 刻度 / 子图 / 补丁等基本图像属性
  • Python 数据分析三剑客之 Matplotlib(四):线性图的绘制
  • Python 数据分析三剑客之 Matplotlib(五):散点图的绘制
  • Python 数据分析三剑客之 Matplotlib(六):直方图 / 柱状图 / 条形图的绘制
  • Python 数据分析三剑客之 Matplotlib(七):饼状图的绘制
  • Python 数据分析三剑客之 Matplotlib(八):等高线 / 等值线图的绘制
  • Python 数据分析三剑客之 Matplotlib(九):极区图 / 极坐标图 / 雷达图的绘制
  • Python 数据分析三剑客之 Matplotlib(十):3D 图的绘制
  • Python 数据分析三剑客之 Matplotlib(十一):最热门最常用的 50 个图表【译文】

另有 NumPy、Pandas 系列文章已更新完毕,欢迎关注:

  • NumPy 系列文章:https://itrhx.blog.csdn.net/category_9780393.html
  • Pandas 系列文章:https://itrhx.blog.csdn.net/category_9780397.html

推荐学习资料与网站(博主参与部分文档翻译):

  • NumPy 官方中文网:https://www.numpy.org.cn/
  • Pandas 官方中文网:https://www.pypandas.cn/
  • Matplotlib 官方中文网:https://www.matplotlib.org.cn/
  • NumPy、Matplotlib、Pandas 速查表:https://github.com/TRHX/Python-quick-reference-table

文章目录

    • 【1x00】方法描述
    • 【2x00】简单示例
    • 【3x00】按角度调整扇形标签
    • 【4x00】显示图例
    • 【5x00】突出显示扇形块
    • 【6x00】显示各扇区所占百分比
    • 【7x00】旋转饼状图
    • 【8x00】自定义每个扇形和文字属性


这里是一段防爬虫文本,请读者忽略。
本文原创首发于 CSDN,作者 TRHX。
博客首页:https://itrhx.blog.csdn.net/
本文链接:https://itrhx.blog.csdn.net/article/details/106025845
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!

【1x00】方法描述

matplotlib.pyplot.pie() 方法用于绘制饼状图。

基本语法:

matplotlib.pyplot.pie(x[, explode=None, labels=None, colors=None,autopct=None, pctdistance=0.6, shadow=False,labeldistance=1.1, startangle=None, radius=None,counterclock=True, wedgeprops=None, textprops=None,center=(0, 0), frame=False, rotatelabels=False, \*, data=None])
参数描述
x每个扇形块的大小,数组形式,大小单位是比例
explode指定对应扇形块脱离饼图的半径大小,数组形式,其中元素个数应该是 len(x)
labels每个扇形块上的文本标签,列表形式
labeldistance每个扇形块上的文本标签与扇形中心的距离,float 类型,默认 1.1
colors每个扇形块对应的颜色,数组形式
autopct用于计算每个扇形块所占比例,字符串或者函数类型
例如:autopct='%1.1f%%' 表示浮点数,保留一位小数,并添加百分比符号
pctdistance每个扇形块的中心与 autopct 生成的文本之间的距离,float 类型,默认 0.6
shadow是否为扇形添加阴影效果
startangle将饼图按照逆时针旋转指定的角度,float 类型
radius饼图的半径,如果是 None,则将被设置为 1,float 类型
counterclock是否按照逆时针对扇形图进行排列,bool 类型,默认 True
wedgeprops传递给绘制每个扇形图对象的参数,字典形式,参数值参见 Wedge
例如:wedgeprops = {'linewidth': 3} 设置扇形边框线宽度为 3
textprops传递给文本对象的参数,字典形式
例如:textprops={'color': 'r', 'fontsize': 15} 设置文字为红色,大小为15
center饼图圆心在画布上是坐标,默认 (0, 0)
frame是否显示 x, y 坐标轴外框,默认 False
rotatelabels是否按照角度进行调整每块饼的 label 文本标签,默认 False

【2x00】简单示例

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']x = [10, 30, 45, 15]
labels = ['Java', 'Golang', 'Python', 'C++']
colors = ['red', 'yellow', 'blue', 'green']# 指定4个扇区所占比例以及扇区的颜色,扇区文本标签距离扇区中心1.1
plt.pie(x, labels=labels, colors=colors, labeldistance=1.1)
plt.title('饼状图简单示例')plt.show()

01

【3x00】按角度调整扇形标签

rotatelabels 属性可以设置是否按照角度调整每块饼的 label(标签)显示方式。

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']x = [10, 30, 45, 15]
labels = ['Java', 'Go', 'Python', 'C++']
colors = ['red', 'yellow', 'blue', 'green']# 指定4个扇区所占比例以及扇区的颜色,扇区文本标签距离扇区中心1.1,按角度调整 labels
plt.pie(x, labels=labels, colors=colors, labeldistance=1.1, rotatelabels=True)
plt.title('饼状图按角度调整 labels 示例')plt.show()

02

【4x00】显示图例

与前面文章中绘制线性图、散点图、条形图一样,调用 matplotlib.pyplot.legend() 方法可绘制图例,该方法的参数解释参见前文《Python 数据分析三剑客之 Matplotlib(三):图例 / LaTeX / 刻度 / 子图 / 补丁等基本图像属性》

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']x = [10, 30, 45, 15]
labels = ['Java', 'Go', 'Python', 'C++']
colors = ['red', 'yellow', 'blue', 'green']plt.pie(x, labels=labels, colors=colors, labeldistance=1.1)
plt.title('饼状图显示图例示例')
plt.legend(bbox_to_anchor=(1, 1))plt.show()

03


这里是一段防爬虫文本,请读者忽略。
本文原创首发于 CSDN,作者 TRHX。
博客首页:https://itrhx.blog.csdn.net/
本文链接:https://itrhx.blog.csdn.net/article/details/106025845
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!

【5x00】突出显示扇形块

explode 参数可以实现突出显示某一块扇区,接收数组形式的参数,这个数组中的元素个数应该是 len(x),即和扇区块的数量相同。

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']x = [10, 30, 45, 15]
labels = ['Java', 'Golang', 'Python', 'C++']
colors = ['red', 'yellow', 'blue', 'green']# 指定第一个扇区块脱离饼图的半径大小为0.3,其它扇区不脱离
plt.pie(x, labels=labels, colors=colors, labeldistance=1.1, explode=[0.3, 0, 0, 0])
plt.title('饼状图突出显示扇形块示例')
plt.legend(bbox_to_anchor=(1, 1))plt.show()

04

【6x00】显示各扇区所占百分比

autopct 参数可用于计算每个扇形块所占比例,接收字符串或者函数类型,例如:autopct='%1.1f%%' 表示浮点数,保留一位小数,并添加百分比符号。pctdistance 参数用于调整每个扇形块的中心与 autopct 生成的文本之间的距离,float 类型,默认 0.6。

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']x = [10, 30, 45, 15]
labels = ['Java', 'Golang', 'Python', 'C++']
colors = ['red', 'yellow', 'blue', 'green']plt.pie(x,                        # 每个扇形块所占比例labels=labels,            # 扇形块文本标签colors=colors,            # 扇形块颜色labeldistance=1.1,        # 扇形块标签距离中心的距离explode=[0.3, 0, 0, 0],   # 第一个扇形块突出显示autopct='%1.1f%%',        # 显示百分比,保留一位小数pctdistance=0.5           # 百分比文本距离饼状图中心的距离
)
plt.title('饼状图显示各扇区所占百分比示例')
plt.legend(bbox_to_anchor=(1, 1))  # 显示图例plt.show()

05

【7x00】旋转饼状图

startangle 参数可以选择饼状图,改变饼状图放置的角度。注意是按照逆时针旋转。

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']x = [10, 30, 45, 15]
labels = ['Java', 'Golang', 'Python', 'C++']
colors = ['red', 'yellow', 'blue', 'green']plt.pie(x,                        # 每个扇形块所占比例labels=labels,            # 扇形块文本标签colors=colors,            # 扇形块颜色labeldistance=1.1,        # 扇形块标签距离中心的距离explode=[0.3, 0, 0, 0],   # 第一个扇形块突出显示autopct='%1.1f%%',        # 显示百分比,保留一位小数pctdistance=0.5,          # 百分比文本距离饼状图中心的距离startangle=-90            # 逆时针旋转-90°,即顺时针旋转90°
)
plt.title('饼状图旋转角度示例')
plt.legend(bbox_to_anchor=(1, 1))  # 显示图例plt.show()

06

【8x00】自定义每个扇形和文字属性

wedgeprops 参数以字典形式为每个扇形添加自定义属性,例如:wedgeprops = {'linewidth': 3} 设置扇形边框线宽度为 3,更多其他参数值参见 Wedge;

textprops 参数同样以字典形式为文本对象添加自定义属性,例如:textprops={'color': 'r', 'fontsize': 15} 设置文字为红色,大小为15,更多其他参数值参见 Text。

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']x = [10, 30, 45, 15]
labels = ['Java', 'Golang', 'Python', 'C++']
colors = ['red', 'yellow', 'blue', 'green']plt.pie(x,                           # 每个扇形块所占比例labels=labels,               # 扇形块文本标签colors=colors,               # 扇形块颜色labeldistance=1.1,           # 扇形块标签距离中心的距离explode=[0.3, 0, 0, 0],      # 第一个扇形块突出显示autopct='%1.1f%%',           # 显示百分比,保留一位小数pctdistance=0.6,             # 百分比文本距离饼状图中心的距离shadow=True,                 # 显示阴影效果wedgeprops={                 # 为每个扇形添加属性'width': 0.7,            # 扇形宽度0.7'edgecolor': '#98F5FF',  # 扇形边缘线颜色'linewidth': 3           # 扇形边缘线宽度},textprops={                  # 为文字添加属性'fontsize': 13,          # 文字大小'fontweight': 'bold',    # 文字粗细'color': 'k'             # 文字颜色,黑色}
)
plt.title('饼状图自定义每个扇形和文字属性示例', fontweight='bold')
plt.legend(bbox_to_anchor=(1, 1), borderpad=0.6)  # 显示图例plt.show()

07


这里是一段防爬虫文本,请读者忽略。
本文原创首发于 CSDN,作者 TRHX。
博客首页:https://itrhx.blog.csdn.net/
本文链接:https://itrhx.blog.csdn.net/article/details/106025845
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437715.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

访问网络共享时出现“拒绝访问”

今天公司副总说要我连接一下前面的打印机,二话不说,屁颠屁颠的就到现场了。虽然是简单的活,但也得去不是。 到老总计算机上 开始--运行 \\192.168.0.45 (装有打印的计算机,OS是XP系统!) 结果出…

zookeeper集群自动启动-关闭-查询的shell脚本

由于zookeeper启动需要在每台虚拟机都进行zkServer.sh start,很不方便,由此写个shell脚本来进行一个命令全部启动。 前提:配置好ssh免密登录,并且每台虚拟机都可以互通,没配置好的可以看下我的hadoop集群搭建里有免密…

Python 数据分析三剑客之 Matplotlib(八):等高线 / 等值线图的绘制

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

【转】Office365完整离线安装包下载及自定义安装教程

Office365部署方法 概要提示: 全文内容归结起来其实也就2条命令 下载:D:\365\setup.exe /download D:\365\Configuration.xml(此命令为1条,不可以拆分为2行输入) 安装:D:\365\setup.exe /configure D:\3…

Python 数据分析三剑客之 Matplotlib(九):极区图 / 极坐标图 / 雷达图的绘制

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

【转】中国式管理最有趣的地方,可能就在这些关键词之中

曾仕强老先生的中国式管理,就像中医中药,你说他对吗?根本不符合现代的科学逻辑,有些甚至荒诞。然而,即便这样,依然能西医所不能,这就是他的魅力。让我们一探究竟,对也好,…

Python 数据分析三剑客之 Matplotlib(十):3D 图的绘制

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

Hbase学习-一步一步慢慢来

HBASE是一个分布式系统 其中有一个管理角色: HMaster(一般2台,一台active,一台backup)(我用的五台) 其他的数据节点角色: HRegionServer(很多台,看数据容量) 1.安装可以参考我的Hbase安装&…

Python 数据分析三剑客之 Matplotlib(十一):最常用最有价值的 50 个图表

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

【转】Windows Server 2012 R2 双网卡绑定

双网卡绑定主要有以下两点好处: 1、实现网络容错:主主模式和主被模式 2、带宽聚合 首先准备工作需要两台虚拟机,Server01是目标服务器,需要有两块网卡,并且清空两块网卡的现有配置,Server02作为测试机。 …

解决Hbase输入list,创建表报错,输入status可以,org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: S

今天恢复了一下快照,然后hbase出现了问题 2019-08-25 00:59:55,810 INFO [RpcServer.default.FPBQ.Fifo.handler28,queue1,port16000] client.RpcRetryingCallerImpl: ,1 is not online on chun4,16020,1566665941494at org.apache.hadoop.hbase.regionserver.HRe…

Python 数据分析三剑客之 Pandas(一):认识 Pandas 及其 Series、DataFrame 对象

CSDN 课程推荐:《迈向数据科学家:带你玩转Python数据分析》,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员;已出版《跟老齐学Python:轻松入门》《跟老齐学Py…

【转】通过第三方工具体验Microsoft Graph

上一篇文章我介绍了如何利用官方提供的Graph 浏览器快速体验Microsoft Graph强大功能,这是极好的起点。官方的Graph浏览器力图用最简单的方式帮助您使用Microsoft Graph,为此也隐藏了很多细节。为了帮助大家更好地理解Microsoft Graph的工作原理&#xf…

【转】通过Graph 浏览器体验Microsoft Graph

上一篇介绍了Microsoft Graph的基本概念,接下来我们快速体验一下Microsoft Graph到底能做什么? 为了帮助开发人员直观和快速体验Microsoft Graph的魅力,官方提供了一个专门的工具,叫做Graph 浏览器(Graph Explorer&am…

【转】wpf和winform的区别

WinForm是Net开发平台中对Windows Form的一种称谓。 WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计…

sqoop(数据迁移工具)-安装-学习

sqoop 1)概述 sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具。 导入数据:MySQL,Oracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统; 导出数据:从Hadoop的文件系统中导出数据到关系数…

Python 数据分析三剑客之 Pandas(六):GroupBy 数据分裂、应用与合并

CSDN 课程推荐:《迈向数据科学家:带你玩转Python数据分析》,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员;已出版《跟老齐学Python:轻松入门》《跟老齐学Py…

错误: 找不到或无法加载主类 org.apache.flume.tools.GetJavaProperty

打开bin下的flume-ng 找到下面,添加红色框内容,即可 如果还有有关hbase的同样的错误(因为hadoop与hbase版本不兼容,更换我这里hadoop-2.7.7,hbase-2.0.6(一开始是2.1.5会出现这个错误)&#xff…

flume学习-含安装

1.Flume是什么:Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。 Flume组成架构 下面我们来详细介绍一下Flume架构中的组件。 1) Agent&#xff1…

【转】使用Azure Rest API获得Access Token介绍

1. 前言 本文主要描述了以java应用为客户端,使用Azure Rest接口的认证过程,帮助快速完成使用Azure Rest接口的第一步。 2. 读者 本文适合开发人员、IT运维人员阅读。 3. 方案架构说明 在我负责的某大型国企客户提出的混合云战略是:不仅要…