当前位置: 首页 > article >正文

python科研绘图:面积图

目录

1、面积图

2、堆积面积图


1、面积图

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

主要特点:

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

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

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

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、堆积面积图

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

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

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

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()
​


http://www.kler.cn/a/134050.html

相关文章:

  • UDP协议和TCP协议之间有什么具体区别?
  • 远离生成式AI大乱斗,SAS公司揭示亚太区千亿AI市场蓝图
  • 卓胜微嵌入式面试题及参考答案(2万字长文)
  • Unity学习笔记(4):人物和基本组件
  • 继承和多态(上)
  • 如何在算家云搭建Peach-9B-8k-Roleplay(文本生成)
  • 一些RLHF的平替汇总
  • c语言常见的面试问题
  • Qt HTTP 摘要认证(海康球机摄像机ISAPI开发)
  • C语言——1.入门须知
  • TikTok与媒体素养:如何辨别虚假信息?
  • SpirngBoot + Vue 前后端分离开发工具代码
  • 阶乘算法优化
  • curl网络请求命令
  • milvus数据库索引管理
  • ClickHouse查看执行计划
  • CI/CD -gitlab
  • Notepad+正则表达式使用方法
  • ubuntu20编译ffmpeg3.3.6
  • Python实现视频字幕时间轴格式转换
  • 16. @PostConstruct注解和开关原理(验证码开关、IP开关)
  • 流量4----4
  • 【Java 进阶篇】JQuery 事件绑定:`on` 与 `off` 的奇妙舞曲
  • fully_connected与linear
  • C++学习 --vector
  • Linux 零拷贝splice函数