Matplotlib:绘制饼图
Table of Contents

简介 Link to 简介

饼图(Pie Chart),用扇形的面积,也就是圆心角的度数来表示数量。

饼图能够十分直观地展示出每个部分数据的占比,各部分比例总量必须是100%。

安装 Matplotlib Link to 安装 Matplotlib

打开 CMD, 输入(前提是要安装 Python):

CMD
1
pip install matplotlib

如果下载较慢,建议使用国内镜像:

CMD
1
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib

开始绘制 Link to 开始绘制

在 Matplotlib 中,绘制折线图的函数如下:

PYTHON
1
plt.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)

简单饼图 Link to 简单饼图

直接上代码~ (结合注释食用!)

注:本文使用的数据为七大洲面积。

PYTHON
1
2
3
4
from matplotlib import pyplot as plt  # 导入 matplotlib
value = [4400, 3000, 2400, 1800, 1400, 1000, 900]  # 数据
plt.pie(value)  # 绘图
plt.show()  # 显示

添加标签 Link to 添加标签

参数:labels,值为一个和数据一一对应的列表。

PYTHON
1
2
3
4
5
6
from matplotlib import pyplot as plt
plt.rcParams['font.family'] = 'Microsoft YaHei'  # 显示中文
value = [4400, 3000, 2400, 1800, 1400, 1000, 900]
name = ["亚洲", "非洲", "北美洲", "南美洲", "南极洲", "欧洲", "大洋洲"]  # 名称
plt.pie(value, labels=name)
plt.show()

添加百分比 Link to 添加百分比

参数:autopct,值为一个格式化字符串(如 %1.1f%%)。

PYTHON
1
2
3
4
from matplotlib import pyplot as plt
value = [4400, 3000, 2400, 1800, 1400, 1000, 900]
plt.pie(value, labels=name, autopct="%1.1f%%")
plt.show()

修改显示方式 Link to 修改显示方式

  • 显示方向:counterclock
  • 初始角度:startangle
PYTHON
1
2
3
4
from matplotlib import pyplot as plt
value = [4400, 3000, 2400, 1800, 1400, 1000, 900]
plt.pie(value, counterclock=False, startangle=90)
plt.show()

突出扇形 Link to 突出扇形

参数:explode,值为一个和数据一一对应的列表,0 为不突出。

PYTHON
1
2
3
4
from matplotlib import pyplot as plt
value = [4400, 3000, 2400, 1800, 1400, 1000, 900]
plt.pie(value, explode=[0.1, 0, 0, 0, 0, 0, 0])
plt.show()

设置标题 Link to 设置标题

plt.title()

PYTHON
1
2
3
4
5
from matplotlib import pyplot as plt
value = [4400, 3000, 2400, 1800, 1400, 1000, 900]
plt.pie(value)
plt.title()
plt.show()

修改颜色 Link to 修改颜色

参数:colors,值为一个与数据一一对应的列表。

PYTHON
1
2
3
4
from matplotlib import pyplot as plt
value = [4400, 3000, 2400, 1800, 1400, 1000, 900]
plt.pie(value, colors=['r', 'g', 'b', 'y', 'grey', 'lightblue', 'c'])
plt.show()

实践:绘制七大洲面积比例图 Link to 实践:绘制七大洲面积比例图

综合使用上述参数,绝对不难:

PYTHON
1
2
3
4
5
6
7
from matplotlib import pyplot as plt
plt.rcParams['font.family'] = 'Microsoft YaHei'  # 显示中文
value = [4400, 3000, 2400, 1800, 1400, 1000, 900]
name = ["亚洲", "非洲", "北美洲", "南美洲", "南极洲", "欧洲", "大洋洲"]
plt.pie(value, labels=name, autopct='%1.1f%%', startangle=90, counterclock=False, explode=[0.1, 0, 0, 0, 0, 0, 0])
plt.title('七大洲面积占比')
plt.show()


本文就到这里啦,拜~ ( •̀ ω •́ )✧

Thanks for reading!

Matplotlib:绘制饼图

2024 09 04
815 words · 5 minutes