手册

目录

饼图

收藏783

阅读969

更新时间2025-08-06

创建饼图

使用 Pyplot,您可以使用 pie() 函数来绘制饼图:

实例

一个简单的饼图:

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])

plt.pie(y)
plt.show() 
运行实例 »

点击 "运行实例" 按钮查看在线实例

结果:

Matplotlib 饼图

如您所见,饼图为数组中的每个值(在本例中为 [35, 25, 25, 15])绘制一个部分(称为楔形)。

默认情况下,第一个楔形的绘制从 x 轴开始并逆时针移动:

Matplotlib 饼图

注意:每个楔形的大小是通过使用以下公式将值与其他所有值进行比较来确定的:

该值除以所有值的总和:x/sum(x)

标签

使用 labels 参数向饼图添加标签。

labels 参数必须是一个数组,每个楔形有一个标签:

实例

一个简单的饼图:

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]

plt.pie(y, labels = mylabels)
plt.show() 
运行实例 »

点击 "运行实例" 按钮查看在线实例

结果:

Matplotlib 饼图

起始角度

如前所述,默认的起始角度在 x 轴上,但您可以通过指定 startangle 参数来更改起始角度。

startangle 参数以度数为单位定义,默认角度为 0:

Matplotlib 饼图

实例

从 90 度开始第一个楔形:

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]

plt.pie(y, labels = mylabels, startangle = 90)
plt.show() 
运行实例 »

点击 "运行实例" 按钮查看在线实例

结果:

Matplotlib 饼图

分离

也许您想让其中一个楔形脱颖而出?explode 参数允许您这样做。

如果指定了 explode 参数,并且不为 None,则它必须是一个数组,每个楔形一个值。

每个值表示每个楔形离中心的距离:

实例

将 "Apples" 楔形从饼图中心拉出 0.2:

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
myexplode = [0.2, 0, 0, 0]

plt.pie(y, labels = mylabels, explode = myexplode)
plt.show() 
运行实例 »

点击 "运行实例" 按钮查看在线实例

结果:

Matplotlib 饼图

阴影

通过将 shadows 参数设置为 True,向饼图添加阴影:

实例

添加阴影:

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
myexplode = [0.2, 0, 0, 0]

plt.pie(y, labels = mylabels, explode = myexplode, shadow = True)
plt.show() 
运行实例 »

点击 "运行实例" 按钮查看在线实例

结果:

Matplotlib 饼图

颜色

您可以使用 colors 参数设置每个楔形的颜色。

如果指定了 colors 参数,它必须是一个数组,每个楔形一个值:

实例

为每个楔形指定一种新颜色:

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
mycolors = ["black", "hotpink", "b", "#4CAF50"]

plt.pie(y, labels = mylabels, colors = mycolors)
plt.show() 
运行实例 »

点击 "运行实例" 按钮查看在线实例

结果:

Matplotlib 饼图

您可以使用十六进制颜色值、140 种受支持的颜色名称中的任何一种,或使用以下快捷方式:

  • 'r' - 红色
  • 'g' - 绿色
  • 'b' - 蓝色
  • 'c' - 青色
  • 'm' - 品红色
  • 'y' - 黄色
  • 'k' - 黑色
  • 'w' - 白色

图例

要为每个楔形添加解释列表,请使用 legend() 函数:

实例

添加图例:

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]

plt.pie(y, labels = mylabels)
plt.legend()
plt.show() 
运行实例 »

点击 "运行实例" 按钮查看在线实例

结果:

Matplotlib 饼图

带标题的图例

要向图例中添加标题,请将 title 参数添加到 legend 函数中。

实例

添加带标题的图例:

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]

plt.pie(y, labels = mylabels)
plt.legend(title = "Four Fruits:")
plt.show() 
运行实例 »

点击 "运行实例" 按钮查看在线实例

结果:

Matplotlib 饼图

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.8万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.4万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

71.1万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.7万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

34万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号