使用matplotlib绘制定制化饼图(图例比例标签支持中文等)

写这篇博客源于博友的提问

使用matplotlib绘制定制化饼图(图例比例标签支持中文等)

; 1. 效果图

效果图如下:

使用matplotlib绘制定制化饼图(图例比例标签支持中文等)

2. 原理

  • autopct=’%0.1f%%’ 自动添加百分比显示,格式化保留1位小数
  • labeldistance 设置各扇形标签(图例)与圆心的距离(labeldistance)为1.1
  • shadow=True 添加饼图的阴影效果
  • startangle 设置饼图的初始摆放角度为90度
  • pctdistance 设置百分比标签与圆心的距离0.7
  • legend(loc=’upper left’,bbox_to_anchor=(x,y)) 图例左上角,指定图例在轴的位置为(-0.3, 1.1)
  • labels :(每一块)饼图外侧显示的说明文字;
  • explode :(每一块)离开中心距离;
  • startangle :起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起;
  • shadow :添加饼图阴影效果 默认值:False,即不画阴影;
  • labeldistance :图例与圆形的比例,label标记的绘制位置,相对于半径的比例,默认值为1.1, 如

3. 源码


from matplotlib import pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']

plt.rcParams['axes.unicode_minus'] = False

labels = ['C语言', 'Python', 'Java', 'C++语言', 'C#', 'VB.net', 'Javascript', 'PHP', 'Other']
sizes = [16.2, 12.1, 11.7, 7.6, 4.7, 4.0, 2.0, 1.8, 39.9]

plt.axes(aspect=1)

plt.pie(sizes, labels=labels, autopct='%0.1f%%', shadow=True,
        startangle=90, labeldistance=1.1, pctdistance=0.7)

plt.legend(loc='upper left', bbox_to_anchor=(-0.3, 1.1))

plt.savefig('program.png')
plt.show()

参考

Original: https://blog.csdn.net/qq_40985985/article/details/127725193
Author: 程序媛一枚~
Title: 使用matplotlib绘制定制化饼图(图例比例标签支持中文等)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/769868/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 7种方案,彻底实现Python可视化图片大小/分辨率控制自由

    Matplotlib默认绘图时常常模糊不清,影响体验,这里分享7种解决方案👇: 方法一,dpi设置 plt.figure(dpi=150) 方法二,figsize设置 plt.fi…

    Python 2023年9月3日
    051
  • Python代码用在这些地方,其实1行就够了!

    摘要:都说 Python 简单快捷,那本篇博客就为大家带来一些实用的 Python 技巧,而且仅需要 1 行代码,就可以解决一些小问题。 1 行代码的由来 都说 Python 简单…

    Python 2023年5月23日
    074
  • Maven工程开发

    目录 一、Maven工程开发_构建Maven工程 二、Maven工程开发_pom文件配置 三、Maven工程开发_编写代码 四、Maven工程开发_依赖范围 一、 Maven工程开…

    Python 2023年9月26日
    047
  • dw 问题总结

    连接问题:注意端口号是否有变化,以及主动模式与被动模式,根据自己创建的服务器模式设置,如果连接不上排除用户名和密码错误的问题,其次就是端口是否匹配,和主动模式和被动模式 如果连接服…

    Python 2023年6月12日
    091
  • BUGKU_CTF- Flask_FileUpload && 1和0的故事

    BUGKU_CTF- Flask_FileUpload && 1和0的故事 1.Flask_FileUpload — Give me the file, and I…

    Python 2023年8月14日
    065
  • tensorboard可视化events.out.tfevents.***文件

    目录 一、安装包准备 1、直接安装tensorboard(推荐) 2、安装tensorflow(不推荐) 二、tensorboard可视化 1. 使用相对路径 2. 使用绝对路径(…

    Python 2023年9月27日
    073
  • 利用python对数据进行分组统计

    SQL经常将聚合函数与GROUP BY进行组合,对数据进行分组统计分析,python在分析数据中也可以实现相同的功能,而且python也是用GROUPBY 首先创建一个数据表 im…

    Python 2023年8月7日
    073
  • 【课程笔记】中科大信息论(三)

    [\begin{aligned} H(X, Y) &=\mathrm{E}\left[\log \frac{1}{p(X, Y)}\right] \ &=\math…

    Python 2023年10月26日
    066
  • 〖Python接口自动化测试实战篇⑥〗- 接口抓包工具 Chrome 的使用

    抵扣说明: 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。 Original: https://blo…

    Python 2023年8月2日
    039
  • 用 VS Code 搞Qt6:使用 PySide 6

    🚀 优质资源分享 🚀 学习路线指引(点击解锁)知识定位人群定位🧡 Python实战微信订餐小程序 🧡 进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯…

    Python 2023年8月10日
    090
  • 第十九章 webpack5项目搭建Vue-Cli(合并配置)

    对于开发环境的配置和生产环境的配置,有大部分代码配置是重复的,因此我们希望将配置合并减少代码体积。 对于Vue-Cli的合并配置,我们使用 webpack.prod.js进行改造。…

    Python 2023年10月7日
    064
  • Pytest学习之路(一)

    今天和大家入门pytest,学习并分享我接触到的这个框架。 一.pytest简介 1.pytest是python的第三方测试框架,是基于unittest的扩展框架,比unittes…

    Python 2023年9月10日
    035
  • Anaconda的虚拟环境的包在哪里?(详细教程)

    我们知道Anaconda可以支持创建很多虚拟环境避免一些版本冲突问题,但是在实际应用中还是会出现类似的情况。 比如说报错某一个环境中的某一个包与anaconda的包冲突了,这时候就…

    Python 2023年8月2日
    063
  • mmdetection 报错 KeyError: ‘xxx is not in the models registry‘

    我的经验适用于直接下载解压别人源码后无法运行的,如果是自己改写的代码,还是检查一下__init__.py里有没有import xxx,或者 __all__里有没有注册xxx。 直入…

    Python 2023年8月3日
    062
  • Python 文件 IO

    文件是磁盘上的一个指定位置,用来存储相关信息。它用于永久地将数据存储在非易失性的内存中(例如:硬盘)。 在 Windows 中,文件可以是文本文档、图片、程序等,且通常会有相应的扩…

    Python 2023年5月24日
    082
  • pandas常用功能_2:数据合并merge

    python有多种数据合并的方法,在不同的场合我们可以使用不用的方法 merge可能是我们最熟悉,也最常用的一个方法,因为它的用法与mysql的连接(join)非常类似。 函数介绍…

    Python 2023年8月22日
    042
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球