欢迎访问宙启技术站
智能推送

用Python绘制多层饼图:使用Pie()函数实现

发布时间:2024-01-08 22:43:42

Python中的matplotlib库提供了多种绘图函数,其中之一就是绘制饼图的函数Pie()。饼图是一种常用的数据可视化方式,适用于展示不同类别的数据之间的相对比例。本文将介绍如何使用Python绘制多层饼图,并提供一个使用例子。

首先,我们需要导入matplotlib库和numpy库,用于绘图和生成随机数据。可以使用以下代码导入这两个库:

import matplotlib.pyplot as plt                                                   
import numpy as np   

下面是一个简单的例子,演示如何使用Pie()函数绘制一个简单的饼图:

labels = ['A', 'B', 'C', 'D', 'E']
sizes = [15, 30, 25, 10, 20]

fig, ax = plt.subplots()
ax.pie(sizes, labels=labels, autopct='%1.1f%%')
ax.axis('equal')

plt.show()

在这个例子中,我们定义了5个标签(A,B,C,D,E)和对应的数据大小。然后,我们创建一个子图并使用Pie()函数绘制饼图。参数labels指定每个数据的标签,参数sizes指定数据的大小,参数autopct指定数据标签的格式。最后,我们通过调用axis('equal')函数使饼图的纵横比保持一致。调用plt.show()函数显示图形。

运行上述代码,将生成一个饼图,展示了不同类别的数据之间的相对比例。图形如下所示:

![Simple Pie Chart](https://i.imgur.com/FKViW43.png)

如果想要绘制多层饼图,可以使用嵌套的Pie()函数。以下是一个例子:

labels = ['A', 'B', 'C']
sizes = [60, 30, 10]
colors = ['#FFD700', '#FF8C00', '#FF4500']

fig, ax = plt.subplots()

outer = ax.pie(sizes, labels=labels, colors=colors, radius=1, startangle=90,
               wedgeprops=dict(width=0.3, edgecolor='w'))

inner = ax.pie([10, 10, 10], radius=0.7, colors=['#FFA500', '#FFA500', '#FFA500'],
               wedgeprops=dict(width=0.3, edgecolor='w'))

ax.set(aspect='equal')

plt.show()

该例子绘制了一个包含两层的饼图。外层饼图显示类别A、B和C的相对比例,内层饼图显示每个类别内的子类别的相对比例。这里我们使用了radius参数来控制内层饼图的大小,并使用startangle参数来指定起始角度。wedgeprops参数用于设置饼图的边界线的宽度和颜色。最后,通过调用ax.set(aspect='equal')函数确保饼图的纵横比保持一致。

运行上述代码,将生成如下图所示的多层饼图:

![Nested Pie Chart](https://i.imgur.com/7Ec2ahS.png)

这个例子展示了如何使用Python的matplotlib库绘制多层饼图。你可以根据需要调整标签、大小、颜色和边界线等参数来创建符合你需求的图形。希望这个简单的教程能够帮助你理解如何使用Python绘制多层饼图。