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

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

相关文章:

  • App分发的原理ipa分发系统需求
  • YOLO目标检测——谢韦尔钢材缺陷检测数据集下载分享【含对应voc、coco和yolo三种格式标签】
  • 钉钉统计部门个人请假次数go
  • Wpf 使用 Prism 实战开发Day05
  • PyCharm 【unsupported Python 3.1】
  • Vue3与Vue2:前端进化论,从性能到体验的全面革新
  • c语言-数据结构-栈和队列的实现和解析
  • 微信如何设置自动保存图片和视频
  • demo(二)eurekaribbon----服务注册、提供与消费
  • C语言初学3:变量和常量
  • 【数据结构】希尔排序(最小增量排序)
  • java 旋转方阵
  • 【C++面向对象】13. 接口 / 抽象类*
  • C#几种截取字符串的方法
  • cmmlu数据处理
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • exports和module.exports
  • Javascript弹出层-初探
  • Java比较器对数组,集合排序
  • laravel with 查询列表限制条数
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Python socket服务器端、客户端传送信息
  • 闭包--闭包作用之保存(一)
  • 关于extract.autodesk.io的一些说明
  • 蓝海存储开关机注意事项总结
  • 通过git安装npm私有模块
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 再次简单明了总结flex布局,一看就懂...
  • 责任链模式的两种实现
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • !$boo在php中什么意思,php前戏
  • # .NET Framework中使用命名管道进行进程间通信
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #pragma pack(1)
  • (13)Hive调优——动态分区导致的小文件问题
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (LeetCode C++)盛最多水的容器
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • **PHP分步表单提交思路(分页表单提交)
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • /var/lib/dpkg/lock 锁定问题
  • @RequestParam,@RequestBody和@PathVariable 区别
  • @RestController注解的使用
  • @RunWith注解作用
  • [AIGC] Java 和 Kotlin 的区别
  • [AndroidStudio]_[初级]_[修改虚拟设备镜像文件的存放位置]
  • [Android开源]EasySharedPreferences:优雅的进行SharedPreferences数据存储操作
  • [BZOJ2208][Jsoi2010]连通数
  • [C++] cout、wcout无法正常输出中文字符问题的深入调查(1):各种编译器测试
  • [C++]priority_queue的介绍及模拟实现
  • [CSAWQual 2019]Web_Unagi ---不会编程的崽