首页 > 编程笔记 > Python笔记 阅读:5

Matplotlib area()绘制面积图(附带实例)

面积图用于体现数据随时间变化的情况,可引起人们对总值趋势的注意。例如,表示随时间变化的利润数据可以绘制成面积图,以强调总利润。

Matplotlib 绘制面积图主要使用 area() 函数,语法格式如下:
matplotlib.pyplot.stackplot(x, *args, data=None, **kwargs)
参数说明:
【实例 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 堆叠面积图

相关文章