如何在Matplotlib Python中显示饼图?

如何在Matplotlib Python中显示饼图?

在数据可视化中,饼图是一种十分常见的显示方式。当你需要展示数据占比时,饼图便是一种非常好的选择。在Python中,Matplotlib便是一种广泛使用的数据可视化库,而且Matplotlib的饼图绘制也是十分简单的。

接下来,我们就一起来学习如何在Matplotlib Python中显示饼图吧!

Matplotlib绘制饼图的基本语法

Matplotlib库中,绘制饼图基本语法如下:

matplotlib.pyplot.pie(x, explodes=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, rotatelabels=False, normalize=None, 
    data=None)

其中,各参数含义如下:
x:绘制饼图中的数据,通常为列表或者数组
explodes:指定要分离出来的饼块,通常为列表
labels:指定饼图中每个块的标签,通常为列表或者数组
colors:指定饼块颜色,通常为列表或者数组
autopct:指定饼图中每个块的百分比格式
pctdistance:指定每个饼块的百分比标签和圆心的距离
shadow:指定是否显示阴影
labeldistance:指定标签和饼图的距离
startangle:指定饼图的起始角度
radius:指定饼图的半径
counterclock:指定是否逆时针绘制饼图
wedgeprops:指定饼块属性
textprops:指定饼块文本属性
center:指定饼图中心位置
frame:指定是否显示饼图边框
rotatelabels:指定是否旋转每个饼块百分比标签
normalize:指定是否将数据标准化
data:指定数据,有时候也会使用这个参数。

下面,我们会结合实例来展示上述参数的用法。

在Matplotlib Python中绘制基本饼图

下面,我们来实现在Matplotlib Python中绘制基本的饼图。代码如下:

import matplotlib.pyplot as plt

# 定义数据
data = [33, 25, 20, 22]

# 定义标签
labels = ['Apple', 'Banana', 'Pear', 'Watermelon']

# 定义颜色
colors = ['red', 'yellow', 'green', 'blue']

# 绘制饼图
plt.pie(data, labels=labels, colors=colors)

# 显示图形
plt.show()

其中,我们通过定义数据data,标签labels和颜色colors来绘制饼图。最后,我们通过plt.show()来显示图形。

在Matplotlib Python中绘制带百分比的饼图

下面,我们在第一个例子的基础上,实现在Matplotlib Python中绘制带百分比的饼图。代码如下:

import matplotlib.pyplot as plt

# 定义数据
data = [33, 25, 20, 22]

# 定义标签
labels = ['Apple', 'Banana', 'Pear', 'Watermelon']

# 定义颜色
colors = ['red', 'yellow', 'green', 'blue']

# 绘制饼图
plt.pie(data, labels=labels, colors=colors, autopct='%.1f%%')

# 显示百分比和图形
plt.show()

其中,我们通过添加autopct='%.1f%%'来显示每个块的百分比,并保留一位小数。

在Matplotlib Python中绘制分离的饼图

下面,我们在第一个例子的基础上,实现在Matplotlib Python中绘制分离的饼图。代码如下:

import matplotlib.pyplot as plt

# 定义数据
data = [33, 25, 20, 22]

# 定义标签
labels = ['Apple', 'Banana', 'Pear', 'Watermelon']

# 定义颜色
colors = ['red', 'yellow', 'green', 'blue']

# 分离出数据最大的块(Pear)
explode = (0, 0, 0.1, 0)

# 绘制饼图,并分离出最大的一块(Pear)
plt.pie(data, labels=labels, colors=colors, explode=explode, autopct='%.1f%%')

# 显示图形
plt.show()

其中,我们通过添加explode来分离出数据最大的块(Pear),并设置explode = (0, 0, 0.1, 0)。其中,第三个元素0.1表示分离出数据最大的块(Pear)与其他块的距离。

在Matplotlib Python中绘制带阴影的饼图

下面,我们在第一个例子的基础上,实现在Matplotlib Python中绘制带阴影的饼图。代码如下:

import matplotlib.pyplot as plt

# 定义数据
data = [33, 25, 20, 22]

# 定义标签
labels = ['Apple', 'Banana', 'Pear', 'Watermelon']

# 定义颜色
colors = ['red', 'yellow', 'green', 'blue']

# 分离出数据最大的块(Pear)
explode = (0, 0, 0.1, 0)

# 绘制饼图,设置阴影,分离出最大的一块(Pear)
plt.pie(data, labels=labels, colors=colors, explode=explode, 
        shadow=True, autopct='%.1f%%')

# 显示图形
plt.show()

其中,我们通过添加shadow=True来添加阴影。

在Matplotlib Python中绘制可以自定义每个饼块属性的饼图

下面,我们在第一个例子的基础上,实现在Matplotlib Python中绘制可以自定义每个饼块属性的饼图。代码如下:

import matplotlib.pyplot as plt

# 定义数据
data = [33, 25, 20, 22]

# 定义标签
labels = ['Apple', 'Banana', 'Pear', 'Watermelon']

# 定义颜色
colors = ['red', 'yellow', 'green', 'blue']

# 分离出数据最大的块(Pear)
explode = (0, 0, 0.1, 0)

# 每个饼块的属性
wedgeprops = {'linewidth': 1, 'edgecolor': 'green'}

# 绘制饼图,添加自定义饼块属性,显示百分比,并分离出最大的一块(Pear)
plt.pie(data, labels=labels, colors=colors, explode=explode, wedgeprops=wedgeprops, 
        autopct='%.1f%%')

# 显示图形
plt.show()

其中,我们通过添加wedgeprops来自定义每个饼块的属性,包括边框线宽和颜色。

在Matplotlib Python中绘制椭圆形的饼图

下面,我们在第一个例子的基础上,实现在Matplotlib Python中绘制椭圆形的饼图。代码如下:

import matplotlib.pyplot as plt

# 定义数据
data = [33, 25, 20, 22]

# 定义标签
labels = ['Apple', 'Banana', 'Pear', 'Watermelon']

# 定义颜色
colors = ['red', 'yellow', 'green', 'blue']

# 分离出数据最大的块(Pear)
explode = (0, 0, 0.1, 0)

# 绘制饼图,并将整个图形变成椭圆形
plt.pie(data, labels=labels, colors=colors, explode=explode, 
        autopct='%.1f%%', wedgeprops={'width': 0.7, 'edgecolor': 'w'})

# 使图形变成一个圆
plt.axis('equal')

# 显示图形
plt.show()

其中,我们通过添加wedgeprops={'width': 0.7, 'edgecolor': 'w'}来将整个图形变成椭圆形;通过添加plt.axis('equal')来将图形变成一个圆。

在Matplotlib Python中自定义每个饼块文本属性的饼图

下面,我们在第一个例子的基础上,实现在Matplotlib Python中自定义每个饼块文本属性的饼图。代码如下:

import matplotlib.pyplot as plt

# 定义数据
data = [33, 25, 20, 22]

# 定义标签
labels = ['Apple', 'Banana', 'Pear', 'Watermelon']

# 定义颜色
colors = ['red', 'yellow', 'green', 'blue']

# 分离出数据最大的块(Pear)
explode = (0, 0, 0.1, 0)

# 每个饼块的文本属性
textprops = {'fontsize': 12, 'color': 'w'}

# 绘制饼图,自定义每个饼块的文本属性,显示百分比,并分离出最大的一块(Pear)
plt.pie(data, labels=labels, colors=colors, explode=explode, 
        autopct='%.1f%%', textprops=textprops)

# 添加标题
plt.title('Fruit Statistics', fontsize=14, fontweight='bold')

# 显示图形
plt.show()

其中,我们通过添加textprops来自定义每个饼块的文本属性,包括文本字号和颜色。

结论

通过本篇文章,我们学习了如何在Matplotlib Python中绘制饼图。绘制饼图可以让我们更加直观地看到数据的占比情况,并且Matplotlib库中绘制饼图的方法也非常简单。

需要注意的是,Matplotlib支持的参数非常多,以上只是其中的一部分示例。在实际应用中,我们可以根据自己的需求来选择合适的参数。

希望本篇文章对您有所帮助!

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程