python科研绘图:面积图

目录

1、面积图

2、堆积面积图


1、面积图

面积图是一种数据可视化图表,用于展示数据随时间或其他有序类别的变化趋势。它与折线图相似,但在展示数据变化的同时,面积图还强调了各个数据点之间的累积关系。这种图表通常通过在折线下方填充颜色来表示数据的累积面积,因此得名"面积图"。

主要特点:

**线条表示趋势:**面积图的主要线条展示数据的趋势,通常是随时间变化的趋势。这条线可以是平滑的曲线,也可以是直线,具体取决于数据的性质和可视化的目的。

**填充面积:**面积图通过在趋势线下方填充颜色,强调了数据的累积效果。这有助于观察整体的趋势,并突出高峰和低谷的变化。

**用途广泛:**面积图通常用于展示时间序列数据,例如股票价格随时间的变化、销售额的季节性波动等。它也可用于比较多个类别的累积数据,突出总体趋势和各类别之间的相对贡献。

python 复制代码
import matplotlib.pyplot as plt
import numpy as np
# 准备数据
x = np.array([1, 2, 3, 4, 5])
y1 = np.array([10, 5, 50, 10, 45])
# 创建画布和子图对象
fig, ax = plt.subplots()
# 绘制面积图
ax.fill_between(x, y1)
# 设置图表属性
ax.set_title('Area Chart',font={'family':'Arial', 'size':18}, loc='left')
ax.set_xlabel('Time',font={'family':'Arial', 'size':16}, rotation=10)
ax.set_ylabel('Value')
# 设置x轴刻度朝向为向上
ax.tick_params(axis='x', direction='in')
# 设置y轴刻度朝向为向右
ax.tick_params(axis='y', direction='in')
#刻度标签
plt.xticks(fontproperties = 'Times New Roman', size = 18)
plt.yticks(fontproperties = 'Times New Roman', size = 18)
# #刻度线的大小长短粗细
# plt.tick_params(axis="both", which="major", direction="in", width=1, length=5, pad=5)
# #不显示刻度标签
# ax.axes.xaxis.set_ticklabels([])
# ax.axes.yaxis.set_ticklabels([])
# 显示图表
plt.show()
​

2、堆积面积图

堆积面积图是一种统计图表,用于展示多个数据系列在不同类别或时间段中的累积总和,并以堆积的方式呈现。在这种图表中,每个数据系列都以不同的颜色表示,堆积在彼此之上,形成整体的面积。这种图表通常用于比较总体趋势以及每个数据系列在整体中的相对贡献。

例如,如果你有关于销售额的数据,堆积面积图可以展示每个产品类别或每个销售渠道的销售额随时间的累积变化。每个产品类别或销售渠道的面积代表其贡献,而整个堆积面积图则显示总销售额的变化趋势。

这种图表有助于观察不同部分的相对大小和总体趋势,使人更容易理解数据的分布和演变。

python 复制代码
import matplotlib.pyplot as plt
x = [2, 3, 4, 5, 6, 7]
y2 = [[4, 5, 2, 1, 1, 0], [1, 24, 5, 3, 2, 1], [9, 8, 7, 5, 4, 1]]
# 创建画布和子图对象
fig, ax = plt.subplots()
# 绘制面积图
plt.stackplot(x, y2, labels=["A1", "A2", "A3"], colors=["green", "blue", "red"], alpha=0.4)
# 设置图表属性
ax.set_title('Area Chart',font={'family':'Arial', 'size':18}, loc='left')
ax.set_xlabel('Time',font={'family':'Arial', 'size':16}, rotation=0)
ax.set_ylabel('Value')
# 设置x轴刻度朝向为向上
ax.tick_params(axis='x', direction='in')
# 设置y轴刻度朝向为向右
ax.tick_params(axis='y', direction='in')
#刻度标签
plt.xticks(fontproperties = 'Times New Roman', size = 18)
plt.yticks(fontproperties = 'Times New Roman', size = 18)
# #刻度线的大小长短粗细
# plt.tick_params(axis="both", which="major", direction="in", width=1, length=5, pad=5)
# #不显示刻度标签
# ax.axes.xaxis.set_ticklabels([])
# ax.axes.yaxis.set_ticklabels([])
# 显示图表
plt.show()
​
相关推荐
happylifetree8 小时前
Python09:核心语法-数据存储与运算-字面量
python
心之语歌8 小时前
Tkinter 画布基本梳理
运维·服务器·python
Wx-bishekaifayuan9 小时前
django个性化旅游路线推荐平台49005-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
小白快快跑哦10 小时前
python-字符串全解(六):正则表达式-量词
python·正则表达式·字符串
禹凕10 小时前
机器学习之Selenium(Machina Learning about Selenium)
爬虫·python·selenium·测试工具·机器学习
ebiobiz12 小时前
基于 GD32 Embedded Builder (GEB) 与 Nimmake 的 MCU 工程搭建指南
c++·python·单片机·嵌入式硬件·mcu
老歌老听老掉牙12 小时前
穿越时空的物流密码:VRP与VRPTW的深度剖析及实战求解
python·物流·vrp
FYKJ_201012 小时前
django电影推荐系统55066-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·typescript·spark·django
ShyanZh13 小时前
【Python3基础】13-Python 常用设计模式
开发语言·python·设计模式
小静AI工程实验室13 小时前
RSA 算法详解:从模幂原理到 OAEP 加密、PSS 签名与 Python 实验
python·算法