Python 教程

浏览4602
更新时间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 饼图

相关视频

更多

免费

php8,我来也
初级php8,我来也

33.5万次学习

收藏

免费

Thinkphp6.0正式版视频教程
中级Thinkphp6.0正式版视频教程

39.2万次学习

收藏

免费

细说PHP第一季
中级细说PHP第一季

30.3万次学习

收藏

精品课程

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

共29课时

64.4万人学习

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

共25课时

40.9万人学习

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

共43课时

76万人学习

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

共25课时

63.7万人学习

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

共22课时

24.1万人学习

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

共28课时

35.8万人学习

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

共89课时

131.8万人学习

热门下载

更多
phpStudy 2018最新版
phpStudy 2018最新版

集成PHP7,16种组合,超全大合集

下载

VC9 32位
VC9 32位

VC9 32位 phpstudy集成安装环境运行库

下载

VC11 32位
VC11 32位

VC11 32位 phpstudy集成安装环境运行库​

下载

php程序员工具箱完整版
php程序员工具箱完整版

程序员工具箱 v1.0 php集成环境

下载

VC14 32位
VC14 32位

VC14 32位 phpstudy安装环境运行库

下载

SublimeText3汉化版
SublimeText3汉化版

中文版,非常好用

下载

Notepad++ Windows版
Notepad++ Windows版

Notepad++ 8.9.7 Windows版官方安装包,适合 Windows 用户进行代码编辑、文本处理、语法高亮和插件扩展配置。

下载