如何在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支持的参数非常多,以上只是其中的一部分示例。在实际应用中,我们可以根据自己的需求来选择合适的参数。
希望本篇文章对您有所帮助!