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

羲和能源大数据平台——Python数据绘图方法

1. 写在前面

目前论文对绘图的美观度要求越来越高,在气象领域呈现维度高,时空关联的特性,为了充分展示数据在各个维度的特性,选用合适的绘图方法至关重要,下图给出了如今在科研领域中个常用的各类图像:线型图、气泡图、雷达图、直方图、饼状图、带状图、散点图、箱形图、小提琴图等等。大家为了画出一个图可谓是卷出了“新花样”。
最近,我们频繁收到用户的反馈说平台绘图十分优美,但是却不知道怎么才能画出来,于是我们开启了一期专门的绘图教程,帮助我们的客户在论文撰写、汇报时更“优美”的展示数据。相关内容将持续更新,想要掌握更多的绘图技巧,请记得关注我们~

图源:https://www.reddit.com/r/datascience/comments/bo8a0c/the_fun_way_to_understand_data_visualization/

2. 线型图

线型图可谓是最简单的反应数据变化规律的图,因为现实中的数据都是离散的,将有相关规律的两个变量通过线型图展示出来时最直观的,一般线型图的横坐标为时间(不是绝对的),纵坐标为需要展示的数据。下图为羲和中下载数据后画出来的线型图。

线型图的绘制十分简单,Excel、Python、R、Matlab、LaTeX等都能非常简单的画出线型图,然而Excel中自带的线型图并不是十分美观,推荐用Python等编程语言进行绘制,Python中matplotlib、seaborn、plotly等第三方库支持非常多的优美图,可以通过pypi安装
以下是Python中绘制的方式:

绘制结果:

当然,我们也可以选在在一幅图中绘制多个变量,只需要更改参数y 即可:

在这个非常注重配色搭配的时代,在多个颜色的图中往往会选择饱和度较低的颜色,我们可以更改 template 和 color_discrete_sequence 两个参数来调整背景和线的颜色。
以下是两个参数的参考文档,这在我们后面的绘图中也十分重要:
template: https://plotly.com/python/templates/
color_discrete_sequence:https://plotly.com/python/discrete-color/

3. 分布玫瑰图(以风向为例)

风向在气象数据里面是反映风速方向的变量,由于风向的范围是0~360度,因此可以统计出风向的分布情况,进而通过玫瑰图等展示频率分布的图像来更为清晰的展示风向的分布情况,以下是羲和中下载风向数据后自动画出的风向分布玫瑰图:

然而,我们下载到的羲和气象数据是时序数据,因此我们需要首先统计不同风向区间的数据点频率,再绘制出玫瑰图。有了这个思想,我们就可以十分轻松的用Python来实现风向玫瑰图的绘制了:

以下是绘制效果:

同样我们也可以通过改变template 和 color_discrete_sequence 两个参数来调整背景和饼状的颜色。

4. 下期提示

下一期,我们将展示如何在风向玫瑰图中一同展示风速的强度:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • NXP,S32K1XX汽车通用微控制器开发笔记
  • jdbc-day01
  • [python]线程与进程的区别及代码演示
  • C语言编译的过程
  • 数据资产入表元年,企业如何抓住数据资产增值的机遇?
  • 日志系统(最新版)
  • 09-03 周二 ansible部署与使用指南
  • 深入解析 Netty 的线程模型
  • Android13修改Setting实现电量低于30%的话不可执行Rest操作
  • 腾讯云Linux服务器运维,安装JDK、rabbitmq、nginx、Redis、ClickHouse
  • 【面试题】MySQL的聚簇索引与非聚簇索引与主键索引:深入理解与应用
  • 智能手机、汽车新应用,星纪魅族幸运星号”卫星即将发射
  • 【LeetCode】03.无重复字符的最长子串
  • javascript利用for循环输出0-100的数
  • 针对STM32串口输出乱码错误问题
  • [译]前端离线指南(上)
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • golang 发送GET和POST示例
  • java8-模拟hadoop
  • k8s 面向应用开发者的基础命令
  • Node 版本管理
  • Python 反序列化安全问题(二)
  • Vue.js 移动端适配之 vw 解决方案
  • 第十八天-企业应用架构模式-基本模式
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 如何利用MongoDB打造TOP榜小程序
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 学习笔记:对象,原型和继承(1)
  • 阿里云重庆大学大数据训练营落地分享
  • 进程与线程(三)——进程/线程间通信
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • #每日一题合集#牛客JZ23-JZ33
  • $.ajax()
  • (+4)2.2UML建模图
  • (WSI分类)WSI分类文献小综述 2024
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (生成器)yield与(迭代器)generator
  • (四)汇编语言——简单程序
  • (五)c52学习之旅-静态数码管
  • (译)2019年前端性能优化清单 — 下篇
  • (转)大道至简,职场上做人做事做管理
  • .Family_物联网
  • .htaccess配置重写url引擎
  • .net core Swagger 过滤部分Api
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 通过系统影子账户实现权限维持
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • @ConfigurationProperties注解对数据的自动封装
  • [ C++ ] STL---stack与queue
  • [ 转载 ] SharePoint 资料
  • []T 还是 []*T, 这是一个问题
  • [100天算法】-目标和(day 79)