📜  Matplotlib-饼图(1)

📅  最后修改于: 2023-12-03 15:17:35.719000             🧑  作者: Mango

Matplotlib-饼图

饼图是一种常用的数据可视化方式,通常用于展示各类别之间的数量或比例关系。Matplotlib是Python中最流行的数据可视化库之一,其中也提供了丰富的饼图功能。

饼图的绘制

Matplotlib提供了pyplot.pie()函数用于绘制饼图。以下是绘制最简单的饼图的代码:

import matplotlib.pyplot as plt

sizes = [15, 30, 45, 10]
labels = ['A', 'B', 'C', 'D']
plt.pie(sizes, labels=labels)
plt.show()

该代码块中,我们先定义了4个大小为15、30、45、10的数据,以及相应的类别标签。接着使用plt.pie()函数实现饼图的绘制,其中sizes参数表示各类别大小,labels参数表示各类别标签。

使用plt.show()函数将饼图展示出来,如下图所示:(注:此处为Jupyter Notebook展示,实际代码需在Python环境下运行)

简单饼图

饼图的属性设置

Matplotlib的饼图还提供了多种属性设置,使得我们能够进行更为细致的控制和定制。例如,我们可以设置各类别的颜色、边缘宽度、饼图半径、阴影、起始角度等等。以下是绘制了一些常用属性的饼图的代码:

import matplotlib.pyplot as plt

sizes = [15, 30, 45, 10]
labels = ['A', 'B', 'C', 'D']
colors = ['red', 'green', 'blue', 'yellow']
explode = (0, 0.1, 0, 0)
plt.pie(sizes, explode=explode, labels=labels, colors=colors,
        autopct='%1.1f%%', shadow=True, startangle=90)
plt.axis('equal')
plt.show()

在上述代码中,我们除了定义了数据和标签外,还增加了颜色、分离、阴影、起始角度等属性。特别是,autopct属性用于控制数据标签的格式和显示位置。使用explode属性可以让某类别“被突出”,以突显该类别。注意在最后调用plt.axis(‘equal’)以保证饼图是正圆的。

该代码块运行的饼图如下所示:

常用属性饼图

饼图中的文字和注释

Matplotlib的饼图还支持在图中增加完整的文字和注释信息,以便更直观的展示数据。以下是一个带注释的饼图的代码:

import matplotlib.pyplot as plt

sizes = [15, 30, 45, 10]
labels = ['A', 'B', 'C', 'D']
colors = ['red', 'green', 'blue', 'yellow']
explode = (0, 0.1, 0, 0)
plt.pie(sizes, explode=explode, labels=labels, colors=colors,
        autopct='%1.1f%%', shadow=True, startangle=90)
plt.axis('equal')

# 增加文字和注释
plt.title('Pie Chart')
plt.text(-1.4, 1.4, 'Sample Sizes', fontsize=14)
plt.annotate('Class B', xy=(0.95, 0.55), xytext=(1.8, 1),
             arrowprops=dict(facecolor='black', shrink=0.05))
plt.legend(loc='lower right')

plt.show()

在该代码块中,我们使用plt.title()函数设置了饼图的标题;使用plt.text()函数增加了一个文字标注。使用plt.annotate()函数增加了一个数据中某一类别的注释,并使用arrowprops设置了箭头的颜色和形态。使用plt.legend()函数将注释细节在图表中传递。具体代码的效果如下所示:

带注释的饼图

到此,我们对于Matplotlib-饼图的基本绘制和属性设置以及饼图中的文字和注释的添加已有了了解。在实际场景中可根据需要进行进一步的定制与优化。