当前位置: 首页 > java >正文

一周学会Matplotlib3 Python 数据可视化-绘制饼状图(Pie)

锋哥原创的Matplotlib3 Python数据可视化视频教程:

2026版 Matplotlib3 Python 数据可视化 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

课程介绍


本课程讲解利用python进行数据可视化 科研绘图-Matplotlib,学习Matplotlib图形参数基本设置,绘图参数及主要函数,以及Matplotlib基础绘图,和Matplotlib高级绘图。

绘制饼状图(Pie)

饼状图用于展示分类数据的比例关系,通过扇形面积表示各部分在整体中的占比,适合展示不超过7个类别的构成情况。

核心函数:plt.pie()

plt.pie(x,               # 数据数组(各部分的数值)labels=None,      # 各部分标签autopct=None,     # 百分比显示格式colors=None,      # 颜色列表explode=None,     # 突出显示某些部分shadow=False,     # 是否添加阴影startangle=0,     # 起始角度(0表示从x轴开始)wedgeprops=None   # 扇形属性设置
)

关键参数详解

参数说明示例值
autopct百分比显示格式'%1.1f%%', '%1.0f%%'
explode突出显示部分(0, 0.1, 0)
startangle起始旋转角度90(从y轴开始)
pctdistance百分比标签位置0.85(中心为0,边缘为1)
labeldistance标签位置1.1
wedgeprops扇形属性{'linewidth': 2, 'edgecolor': 'black'}
textprops文本属性{'fontsize': 12, 'color': 'darkblue'}

我们来几个示例:

1,基础饼状图

import matplotlib
import matplotlib.pyplot as plt
​
# 设置matplotlib使用黑体显示中文
matplotlib.rcParams['font.family'] = 'Microsoft YaHei'
​
sizes = [25, 35, 20, 20]
labels = ['苹果', '香蕉', '樱桃', '枣']
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
​
plt.pie(sizes, labels=labels, colors=colors,autopct='%1.1f%%', startangle=90)
plt.title("水果配送")
plt.show()

2,突出显示部分+阴影效果

import matplotlib
import matplotlib.pyplot as plt
​
# 设置matplotlib使用黑体显示中文
matplotlib.rcParams['font.family'] = 'Microsoft YaHei'
​
sizes = [25, 35, 20, 20]
labels = ['苹果', '香蕉', '樱桃', '枣']
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
​
explode = (0, 0.1, 0, 0)  # 突出第二个部分(Bananas)
​
plt.pie(sizes, explode=explode, labels=labels,colors=colors, autopct='%1.1f%%',shadow=True, startangle=135)
plt.axis('equal')  # 确保圆形不变形
plt.title("突出部分")
plt.show()

3,环形图(甜甜圈图)

import matplotlib
import matplotlib.pyplot as plt
​
# 设置matplotlib使用黑体显示中文
matplotlib.rcParams['font.family'] = 'Microsoft YaHei'
​
sizes = [25, 35, 20, 20]
labels = ['苹果', '香蕉', '樱桃', '枣']
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
​
plt.pie(sizes, labels=labels, colors=colors,wedgeprops={'width': 0.4, 'edgecolor': 'white', 'linewidth': 3},autopct='%1.0f%%', pctdistance=0.8)
​
# 中心添加文字
plt.text(0, 0, "水果", ha='center', va='center', fontsize=14)
plt.title("甜甜圈图")
​
plt.show()

4,自定义标签和百分比样式

import matplotlib
import matplotlib.pyplot as plt
​
# 设置matplotlib使用黑体显示中文
matplotlib.rcParams['font.family'] = 'Microsoft YaHei'
​
sizes = [25, 35, 20, 20]
labels = ['苹果', '香蕉', '樱桃', '枣']
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
​
textprops = {'fontsize': 10, 'color': 'darkblue', 'weight': 'bold'}
​
plt.pie(sizes, labels=labels, colors=colors,autopct=lambda p: f'{p:.1f}% ({int(p * sum(sizes) / 100)})',startangle=180, textprops=textprops,wedgeprops={'linewidth': 2, 'edgecolor': 'white'})
​
plt.title("自定义标签")
​
plt.show()

http://www.xdnf.cn/news/17661.html

相关文章:

  • 前沿技术借鉴研讨-2025.8.12 (数据不平衡问题)
  • Web项目Excel文件处理:前端 vs. 后端,企业级如何选择?
  • 【3】Transformers快速入门:大语言模型LLM是啥?
  • 11-docker单机版的容器编排工具docker-compose基本使用
  • centos 7 如何安装 ZipArchive 扩展
  • MySQL 数据库表操作与查询实战案例
  • MySQL概述
  • 计算机网络:ovn数据通信都是用了哪些协议?
  • 集成电路学习:什么是URDF Model统一机器人描述格式模型
  • 智能合约执行引擎在Hyperchain中的作用
  • 北京-4年功能测试2年空窗-报培训班学测开-第七十三天-投递简历-[特殊字符][特殊字符]
  • LangChain 框架 Parser 讲解
  • 介绍一下jQuery的AJAX异步请求
  • Nacos-1--什么是Nacos?
  • vue+flask基于规则的求职推荐系统
  • 3Ds Max的魔改利器:RailClone - 程序化建模的革命者
  • Linux Web服务器与WordPress部署笔记
  • DNS 服务详解与 BIND 部署
  • Django ORM查询技巧全解析
  • 基于Springboot+UniApp+Ai实现模拟面试小工具九:移动端框架搭建
  • 第二章:变量与简单数据类型
  • 【lucene】livedocs描述
  • 【华为机试】208. 实现 Trie (前缀树)
  • 图像打标工具/方法的分类和特点说明
  • Launcher3启动
  • 实战:用 PyTorch 复现一个 3 层全连接网络,训练 MNIST,达到 95%+ 准确率
  • IoT/透过oc_lwm2m/boudica150 源码中的AT指令序列,分析NB-IoT接入华为云物联网平台IoTDA的工作机制
  • Java使用“Microsoft Print To PDF”打印时如何指定输出路径
  • Vue 利用el-table和el-pagination组件,简简单单实现表格前端分页
  • AI时代基于云原生的 CI/CD 基础设施 Tekton