Matplotlib area()绘制面积图(附带实例)
面积图用于体现数据随时间变化的情况,可引起人们对总值趋势的注意。例如,表示随时间变化的利润数据可以绘制成面积图,以强调总利润。
Matplotlib 绘制面积图主要使用 area() 函数,语法格式如下:
【实例 1】绘制简单面积图,程序代码如下:

图 1 简单面积图
面积图也有很多种,如标准面积图、堆叠面积图和百分比堆叠面积图等。
【实例 2】标准面积图。通过标准面积图分析 2017—2023 年线上图书销售情况,通过该图可以看出每一年线上图书销售的趋势。

图 2 标准面积图
【实例 3】通过堆叠面积图分析 2017—2023 年线上各平台图书销售情况,不仅可以看到各平台每年销售情况的变化趋势,还可以看到整体数据的变化趋势。

图 3 堆叠面积图
Matplotlib 绘制面积图主要使用 area() 函数,语法格式如下:
matplotlib.pyplot.stackplot(x, *args, data=None, **kwargs)参数说明:
- x:x 轴数据;
- *args:当传入的参数个数未知时使用。这里指 y 轴数据,可以传入多个 y 轴数据;
- data:关键字参数,如果给定一个数据参数,所有位置和关键字参数将被替换;
- **kwargs:关键字参数,其他可选参数,如 color(颜色)、alpha(透明度)等。
【实例 1】绘制简单面积图,程序代码如下:
# 导入matplotlib模块 import matplotlib.pyplot as plt # 创建数据 x = [1,2,3,4,5]; y1 = [6,9,5,8,4]; y2 = [3,2,5,4,3]; y3 = [8,7,8,4,3]; y4 = [7,4,6,7,12] # 绘制面积图 plt.stackplot(x, y1,y2,y3,y4, colors=['g','c','r','b']) plt.show() # 显示图表运行程序,结果如下图所示:

图 1 简单面积图
面积图也有很多种,如标准面积图、堆叠面积图和百分比堆叠面积图等。
【实例 2】标准面积图。通过标准面积图分析 2017—2023 年线上图书销售情况,通过该图可以看出每一年线上图书销售的趋势。
# 导入相关模块 import pandas as pd import matplotlib.pyplot as plt df = pd.read_excel('../../datas/books.xlsx') # 读取Excel文件 plt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文乱码问题 # 取消科学记数法 plt.gca().get_yaxis().get_major_formatter().set_scientific(False) x = df['年份']; y = df['销售额'] # x、y轴数据 plt.title('2017~2023年线上图书销售情况') # 图表标题 plt.stackplot(x, y) # 面积图 plt.show() # 显示图表效果如下图所示:

图 2 标准面积图
【实例 3】通过堆叠面积图分析 2017—2023 年线上各平台图书销售情况,不仅可以看到各平台每年销售情况的变化趋势,还可以看到整体数据的变化趋势。
# x、y轴数据 x = df['年份']; y1 = df['京东']; y2 = df['天猫']; y3 = df['自营'] plt.title('2017~2023年线上图书销售情况') # 图表标题 # 堆叠面积图 plt.stackplot(x, y1, y2, y3, colors=['#6d904f','#fc4f30','#008fd5']) plt.legend(['京东','天猫','自营'], loc='upper left') # 图例 plt.show() # 显示图表效果如下图所示:

图 3 堆叠面积图