一周学会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()