matplotlib之饼图的绘制

饼图

饼状图顾名思义就是形如圆饼状的图形,它是一种常用的图表类型,通常用于展示数据的占比关系。饼状图通过将一个圆形区域划分为多个子区域,反应出不同子类数据之间的的对比关系以及子类数据在大类中的百分比。饼状图将一个数据集按照每个数据项所占比例的大小,将整个数据集表示为一个圆形,再将圆形分割成不同大小的扇形区域,每个扇形区域的大小表示该数据项所占的比例大小。

通过饼状图,人们可以直观地了解各个数据项所占的比例大小,以便更好地进行比较和分析。饼状图通常用于展示数据的构成比例、市场份额、支出占比等相关信息。

适用场景

饼状图适用于以下场景:

①显示各部分在整体中的占比情况,可以帮助人们直观地比较不同部分之间的大小关系。

②展示分类数据的相对比例,特别是在不同部分之间存在明显的大小差异时,更能凸显数据的特点。

③适用于展示少量数据,饼状图的数据量不宜过多,否则将会使饼状图过于复杂,难以清晰表达数据。

④饼状图适用于视觉化数据,能够让非专业人士轻松理解数据,是一种常用的数据可视化方式。

优缺点

饼状图是一种常见的统计图表,以圆形的方式展示数据的相对大小和占比关系。

(1)它的主要优点包括:

①易于理解:饼状图通常可以直观地展示数据占比,使观众很容易理解数据之间的比例关系。

②易于制作:相对于其他复杂的图表类型,饼状图很容易制作和编辑,适用于初学者和快速制作。

③可视化效果好:饼状图通常有一种饼的形状,这种形状可以更加清晰地表达数据的占比关系。

(2)饼状图的缺点是:

①不适合展示大量数据:当饼状图中有太多的数据时,图表的可读性会受到影响。这时,为了使数据清晰 可读,需要将图表细分成更多的饼状图或选择其他类型的图表。

②容易产生误解:由于饼状图只能展示单一维度的数据,因此在比较不同数据集时,观众可能会产生误 解,特别是当数据之间的差异很小时。

③不适用于复杂的数据:如果数据之间的关系很复杂,使用饼状图可能不够直观,因为它只能展示单一维 度的数据。

创建饼图

  • 在绘制饼图之前,要调用一些函数
1
2
import numpy as np
import matplotlib.pyplot as plt
  • 使用pie()函数绘制饼图
1
2
3
y = np.array([20, 20, 45, 15])  
plt.pie(y)
plt.show()

图1

标签

  • 使用label参数为饼图添加标签
1
2
3
4
my_labels = ["A", "B", "C", "D"]  
y = np.array([20, 20, 45, 15])
plt.pie(y, labels=my_labels)
plt.show()

图2

分离指定的块

  • 使用关键字explode实现分离一个块
  • 必须是一个数组,每个块都要有值,值代表距离中心有多远
1
2
3
4
5
my_labels = ["A", "B", "C", "D"]  
y = np.array([20, 20, 45, 15])
my_explode = [0, 0, 0, 0.5]
plt.pie(y, labels=my_labels, explode=my_explode)
plt.show()

图3

图例

  • 使用legend()函数为每一块添加解释列表
1
2
3
4
5
my_labels = ["A", "B", "C", "D"]  
y = np.array([20, 20, 45, 15])
plt.pie(y, labels=my_labels)
plt.legend()
plt.show()

图4

带标题的图例

  • legend()函数里面可以传入带标题的图例,注意需要声明使用哪款字体
1
2
3
4
5
6
7
matplotlib.rcParams['font.sans-serif'] = ['KaiTi']  

my_labels = ["A", "B", "C", "D"]
y = np.array([20, 20, 45, 15])
plt.pie(y, labels=my_labels)
plt.legend(title="我是图例标题的饼图")
plt.show()

图5

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2024 CuiJP
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信