ECharts 实现气象数据可视化的教程

news/2024/10/11 21:23:30/

ECharts 是一个由百度开源的强大的数据可视化库,它能够通过简单的配置和灵活的扩展生成交互式图表。对于气象数据的可视化,ECharts 提供了丰富的图表类型,如热力图、雷达图、折线图、风场图等,适用于展示温度、降雨量、风速、风向等气象要素。

本文将带你从基础开始,逐步介绍如何使用 ECharts 实现气象数据的可视化。

前置条件

在开始之前,请确保您具备以下环境:

  • 基础的 HTML、CSS 和 JavaScript 知识。
  • 已安装一个 Web 服务器(例如使用 VSCode 的 Live Server 插件)。

第一步:设置开发环境

1. 引入 ECharts

在 HTML 文件中,我们首先需要引入 ECharts 的脚本文件,并创建一个用于渲染图表的 div 容器。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>ECharts 气象可视化</title><script src="https://cdn.jsdelivr.net/npm/echarts@5.3.3/dist/echarts.min.js"></script><style>#main {width: 100%;height: 600px;}</style>
</head>
<body><!-- ECharts 图表容器 --><div id="main"></div>
</body>
</html>

2. 初始化 ECharts 实例

通过 JavaScript,我们可以初始化一个 ECharts 实例,并绑定到 HTML 容器中。下面的代码将在页面加载后创建一个空的 ECharts 图表。

<script>// 基于准备好的 DOM,初始化 echarts 实例var chart = echarts.init(document.getElementById('main'));// 初始化空配置var option = {};// 使用指定的配置项和数据生成图表chart.setOption(option);
</script>

到这里,我们的开发环境已经设置完成,接下来将向图表中添加气象数据进行可视化。

第二步:绘制基本气象图表

1. 可视化温度变化折线图

我们首先从最常见的温度变化折线图开始。假设我们有一个城市的过去一周的每日平均温度数据,展示温度变化趋势。

<script>var option = {title: {text: '城市过去一周温度变化',left: 'center'},tooltip: {trigger: 'axis'},xAxis: {type: 'category',data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']},yAxis: {type: 'value',name: '温度 (°C)'},series: [{name: '温度',type: 'line',data: [12, 15, 18, 22, 20, 25, 23], // 温度数据smooth: true, // 使折线平滑lineStyle: {color: '#ff5722'}}]};// 渲染图表chart.setOption(option);
</script>

2. 添加多条数据展示

如果我们想同时展示多个城市的温度变化,只需在 series 中添加多条数据。例如展示 北京上海 的温度变化:

var option = {title: {text: '北京与上海的温度变化',left: 'center'},tooltip: {trigger: 'axis'},legend: {data: ['北京', '上海'],top: '10%'},xAxis: {type: 'category',data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']},yAxis: {type: 'value',name: '温度 (°C)'},series: [{name: '北京',type: 'line',data: [12, 14, 16, 19, 23, 21, 20],smooth: true,lineStyle: {color: '#ff5722'}},{name: '上海',type: 'line',data: [15, 17, 20, 25, 26, 23, 22],smooth: true,lineStyle: {color: '#2196f3'}}]
};// 渲染图表
chart.setOption(option);

3. 降雨量柱状图

接下来,我们来展示过去一周的每日降雨量,使用柱状图来可视化降雨数据。

var option = {title: {text: '过去一周降雨量',left: 'center'},tooltip: {trigger: 'axis',axisPointer: {type: 'shadow'}},xAxis: {type: 'category',data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']},yAxis: {type: 'value',name: '降雨量 (mm)'},series: [{name: '降雨量',type: 'bar',data: [10, 20, 5, 30, 15, 8, 25],itemStyle: {color: '#4caf50'}}]
};// 渲染图表
chart.setOption(option);

4. 雷达图展示风速和风向

雷达图适合用来展示多维气象数据,如同时展示不同方向的风速信息。我们假设有东南西北四个方向的风速数据。

var option = {title: {text: '不同方向风速',left: 'center'},tooltip: {},radar: {indicator: [{ name: '北风', max: 25 },{ name: '东风', max: 25 },{ name: '南风', max: 25 },{ name: '西风', max: 25 }]},series: [{name: '风速 (m/s)',type: 'radar',data: [{value: [15, 10, 20, 8],name: '风速'}],areaStyle: {color: 'rgba(255,99,71,0.5)'  // 风速区域的填充颜色}}]
};// 渲染图表
chart.setOption(option);

第三步:结合地图进行气象数据可视化

ECharts 还支持与地图结合,用于展示气象数据在地理区域上的分布。

1. 使用 ECharts 的地图模块

在 ECharts 中可以直接加载中国地图或者世界地图,结合地理位置展示气象数据。例如,展示全国各省的平均温度:

var option = {title: {text: '全国各省平均温度',left: 'center'},tooltip: {trigger: 'item',formatter: '{b}: {c}°C'},visualMap: {min: 0,max: 40,left: 'left',top: 'bottom',text: ['高', '低'],calculable: true,inRange: {color: ['#ffe5b4', '#ff5722']}},series: [{name: '温度',type: 'map',mapType: 'china', // 地图类型为中国地图roam: true,       // 支持缩放与平移label: {show: true},data: [{ name: '北京', value: 22 },{ name: '上海', value: 28 },{ name: '广东', value: 35 },{ name: '四川', value: 18 },{ name: '黑龙江', value: 10 }]}]
};// 渲染图表
chart.setOption(option);

2. 热力图展示降雨分布

热力图适合用于展示降雨量或温度在地理上的分布,能直观反映出某一地区的气象异常或热点。通过 ECharts 的地理模块,可以将气象数据叠加在地图上形成热力图。

var option = {title: {text: '全国降雨量分布',left: 'center'},tooltip: {trigger: 'item',formatter: '{b}: {c}mm'},visualMap: {min: 0,max: 300,left: 'left',top: 'bottom',text: ['多', '少'],inRange: {color: ['#50a3ba', '#eac736', '#d94e5d']},calculable: true},series: [{type: 'heatmap',mapType: 'china',roam: true,data: [{ name: '北京', value: 100 },{ name: '广东', value: 200 },{ name: '上海', value: 150 },{ name: '四川', value: 80 }]}]
};// 渲染图表
chart.setOption(option);

结论

通过本文的介绍,我们使用 ECharts 实现了多种类型的气象数据可视化,包括温度、降雨量、风速等常见的气象要素,并展示了如何结合地图进行可视化。ECharts 提供了强大的数据可视化能力和灵活的图表配置,可以根据实际项目需求进一步扩展和定制。希望这篇教程能够帮助你在气象数据可视化项目中取得良好的效果。


http://www.ppmy.cn/news/1537630.html

相关文章

[论文期刊|稳定检索]2024年信号处理与光学工程国际会议(SPOE 2024 )

2024年信号处理与光学工程国际会议 2024 International Conference on Signal Processing and Optical Engineering 【1】大会信息 会议名称&#xff1a;2024年信号处理与光学工程国际会议 会议简称&#xff1a;SPOE 2024 大会时间&#xff1a;请查看官网 大会地点&#xf…

Ajax面试题:(第一天)

目录 1.说一下网络模型 2.在浏览器地址栏键入URL&#xff0c;按下回车之后会经历以下流程&#xff1a; 3.什么是三次握手和四次挥手&#xff1f; 4.http协议和https协议的区别 1.说一下网络模型 注&#xff1a;各层含义按自己理解即可 2.在浏览器地址栏键入URL&#xff0c;…

红日靶场1学习笔记

一、准备工作 1、靶场搭建 靶场地址 靶场描述 靶场拓扑图 其他相关靶场搭建详情见靶场地址相关说明 2、靶场相关主机信息 后续打靶场的过程中&#xff0c;如果不是短时间内完成&#xff0c;可能ip会有变化 主机ip密码角色win7192.168.122.131hongrisec2019!边界服务器win…

pytorch常用函数view、sum、sequeeze、cat和chunk

文章目录 view()函数sequeeze和unsequeezecat和chunk函数sum函数view()函数 view()相当于reshape、resize,重新调整Tensor的形状。 指定调整形状之后的维度import torch re = torch.tensor([1, 2, 3, 4, 5

OJ在线评测系统 微服务高级 Gateway网关接口路由和聚合文档 引入knife4j库集中查看管理并且调试网关项目

Gateway微服务网关接口路由 各个服务之间已经能相互调用了 为什么需要网关 因为我们的不同服务是放在不同的端口上面的 如果前端调用服务 需要不同的端口 8101 8102 8103 8104 我们最好提供一个唯一的 给前端去调用的路径 我们学习技术的时候必须要去思考 1.为什么要用&am…

冲呀!重阳节(潸然泪下)——早读(逆天打工人爬取热门微信文章解读)

冲呀 引言Python 代码第一篇 洞见 没有父母的重阳节&#xff08;潸然泪下&#xff09;第二篇 切割结尾 &#xff08;牛市的危害呀&#xff09; 引言 恐怖至极 现在杀猪盘真多 我接到一个建设银行的短信 然后觉得最近是不错的借贷时机&#xff08;dddd&#xff09; 然后对方就…

Android广播

文章目录 1.收发应用广播1.标准广播2.有序广播3.广播的静态注册 2.监听系统广播1.接受分钟到达广播2.接受网络变更广播3.定时管理器AlarmManager 3.捕捉屏幕的变更事件1.竖屏和横屏切换2.回到桌面与切换到任务列表 1.收发应用广播 1.标准广播 广播的收发过程分为三个步骤&…

【大学学习-大学之路-回顾-电子计算机相关专业-学习方案-自我学习-大二学生(2)】

【大学学习-大学之路-回顾-电子&计算机相关专业-学习方案-自我学习-大二学生&#xff08;2&#xff09;】 1、前言2、总体说明1-保证课程原因1&#xff1a;原因2&#xff1a; 2-打比赛3-自我适应 - 享受大学生活 3、 保证课程1、英语课程2、专业课程3、其他课程 4、 打比赛…