写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎大家通过各种方式提供素材。

  • 对于文章中出现的任何错误请大家批评指出,一定及时修改。
  • 有任何想要讨论和学习的问题可联系我:zhuyc@vip.163.com。
  • 发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。

⚽️世界杯ing~这不来个实时数据可视化?(结尾附源码)

本文关键字:世界杯、实时数据、Ajax、可视化、Echarts

文章目录

  • ⚽️世界杯ing~这不来个实时数据可视化?(结尾附源码)
    • 一、场景介绍
      • 1. 概念介绍
      • 2. 最终效果
    • 二、数据源获取
      • 1. 数据来源
      • 2. 数据结构
      • 3. 数据获取
    • 三、可视化图表
      • 1. Echarts
      • 2. 官方案例
      • 3. 进球统计
    • 四、案例源码

一、场景介绍

世界杯赛程已经过半,目前的比分以及各球员的数据都可以比较容易的查询到,但是还不够直观。因此忙里偷闲,写一点小玩意儿,将动态获取的数据以各类图表的方式展现。

1. 概念介绍

  • 实时数据

这个词一般出现在实时计算中,指的是数据会源源不断的输入进来。其实我们目前所需的数据源也是在不断的变化,只是变化的频率很慢,所以我们可以把其当成一个普通的数据接口使用就可以了。
由于整体的场景与实时数据统计的场景很相似,因此借用了实时数据这个词,意思是数据是动态获取的,可以随时根据最新的数据渲染图表。

  • 数据可视化

数据可视化其实是一种描述性分析,最基本的数据查看方式就是以表格的形式,显然不利于对比,也不能反映数据的变化趋势,在分析方面表现力很弱。
如果使用图表的方式来呈现,就可以通过不同数据维度的组合,不同图表类型的展现、联动、下钻来反映数据之间的关系以及自身趋势的变化,这在各类应用中是十分常见的。

2. 最终效果

  • 世界杯积分榜

  • 世界杯射手榜

  • 世界杯助攻榜

二、数据源获取

首先需要做的就是获取一个稳定的数据来源,以能够公开免费访问的为例,当然也可以直接购买体育数据平台的资源。

1. 数据来源

以网易体育为例:https://sports.163.com/worldcup2022/

  • 点击数据下的射手榜

  • 打开浏览器控制台

  • 保持控制台开启,刷新页面

    • 点击JS选项卡进行筛选【有时也可能为json】
    • 逐一查看左侧接口的返回数据【点击响应选项卡】
    • 以射手榜数据为例,则player为所需

  • 找到所需要的数据接口后就可以使用其它工具协助开发,如Postman

    • 接口地址:https://gw.m.163.com/base/worldCup/qatar/player
    • 请求方式:GET

2. 数据结构

确定了数据源之后我们接下来要将所需要的数据维度整理出来,可以方便在开发时进行对照,比对方式也十分简单,直接通过数据在页面上出现的效果就可以找到对应,如:

字段名称 字段含义 样例数据
player 球员名称 姆巴佩
team 所在球队 法国
goals 进球数量 5
games 出场次数 5
minsPlayed 出场时间 387
totalScoringAtt 射门次数 22
ontargetScoringAtt 射正次数 10

3. 数据获取

明确了数据源接口之后,我们只需要想办法将数据在代码中能够获取到,放在一个变量中准备进行解析和使用,可以直接使用jQuery封装的Ajax
在获取数据时需要注意,因为我们的最终目标是将数据以图表的方式展现,所以在获取数据时应该以同步的方式,默认Ajax是异步的方式,案例代码如下:

  • get_data.js
// 定义全局变量
var data = [];function get_data() {// 关闭异步,设置为同步请求$.ajaxSetup({async: false});// 以JSON数据格式获取数据$.getJSON("https://gw.m.163.com/base/worldCup/qatar/player", function(resp) {data = resp.data.items;console.log(data);});
}
  • index.html

需要将jQuery库文件优先引入,下载地址:https://code.jquery.com/jquery-3.6.1.min.js

<script type="text/javascript" src="js/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="js/get_data.js"></script>
<script type="text/javascript">get_data();
</script>
  • 运行结果

现在我们需要的数据已经存放在了json数组中,后面根据图表类型整理成对应的数据结构就可以使用了。

三、可视化图表

在Web前端实现可视化图表有很多开源免费的组件,只需要简单的配置就可以达到比较精美的效果,本文以Echarts为例。

1. Echarts

  • 官网:https://echarts.apache.org/zh/index.html
  • 下载地址:https://raw.githubusercontent.com/apache/echarts/5.4.1/dist/echarts.js
  • 示例地址:https://echarts.apache.org/examples/zh/index.html

Echarts是一个可以快速入门的前端可视化组件,支持千万级的数据渲染展示,官方文档齐全,支持全中文,大家感兴趣可以自己深入学习一下。如果我们现在想要快速做出一个效果图,只需要从示例中选择一个效果相似的,修改一下数据就可以马上在自己的代码中实现了。

2. 官方案例

  • 选择一个示例模板:以简单柱状图为例

  • 代码实时编辑预览

  • 复制完整代码

  • 本地实现

使用代码时,只需要在html页面定义一个id为main的div元素即可,效果如下:

对从示例获得的代码进行简单修改【bar.js】:

// 纯HTML项目中只需要引入echarts.js文件即可成功初始化echarts对象
//var echarts = require('echarts');$(function(){var chartDom = document.getElementById('main');var myChart = echarts.init(chartDom);var option;option = {xAxis: {type: 'category',data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']},yAxis: {type: 'value'},series: [{data: [120, 200, 150, 80, 70, 110, 130],type: 'bar'}]};option && myChart.setOption(option);
});

3. 进球统计

现在我们只需要将获取到的数据整理成图表需要的数据格式就可以看到我们想要的效果了,目前我们需要填充好两个一维数组:xAxis下的data作为横轴数据,yAxis下的data作为纵轴数据。可以将前五名的球员名称作为横轴数据,进球数量作为纵轴数据,整理后如下:

$(function(){var chartDom = document.getElementById('main');var myChart = echarts.init(chartDom);// 定义x轴数据var xData = [];// 定义y轴数据var yData = [];// 数据构建for(var i = 0;i < 5;i++){xData.push(data[i].player);yData.push(data[i].goals);}var option;option = {xAxis: {type: 'category',data: xData// 替换为动态数据},yAxis: {type: 'value'},series: [{data: yData,// 替换为动态数据type: 'bar'}]};option && myChart.setOption(option);
});

四、案例源码

案例中使用了世界杯积分榜、世界杯射手榜、世界杯助攻榜三种数据源,包含柱状图、饼形图、散点图等类型,大家可以在此基础之上继续发挥,如:将各个国家的数据分组统计到一起,再以图表的方式呈现,只需要修改数据构建部分的代码即可。

  • RealtimeData-WorldCup


扫描下方二维码,加入CSDN官方粉丝微信群,可以与我直接交流,还有更多福利哦~

世界杯ing~这不来个实时数据可视化?(结尾附源码)相关推荐

  1. 推荐收藏|又带来了12个炫酷的数据可视化作品含源码

    之前分享了10个炫酷的数据可视化大屏源码,反响很大,好多人在后台回复获取源码,这次,我又带来了12个炫酷的数据可视化大屏源码,都是从网上收集的,都测试后可以使用,在我电脑(1920X1080分辨率下) ...

  2. 【博主推荐】大数据可视化大屏(源码下载)

    可视化大屏交流学习 提示:本文推荐好的大数据可视化源码,用于学习,用于项目,欢迎大家积极交流.持续更新贴-- 资源目录 可视化大屏交流学习 一. 某公司大数据展示模版2 二.大数据可视化通用素材 三. ...

  3. 分享一套php版本的ERP系统,内涵数据可视化大屏源码对接系统数据

    声明:erp不是原创,采用网上的系统,可视化源码是原创,如有侵权请联系作者删除. 源码下载地址: null一套php版本的ERP进销存管理系统加对接系统的数据可视化大屏源码,亲测可用技术栈:php,m ...

  4. 炫酷,SpringBoot+Echarts实现用户访问地图可视化(附源码)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 SpringBoot+Echarts用户访问地图可视化 意义 在常 ...

  5. python数据可视化之美源码_Python数据可视化之美-专业图

    Python数据可视化之美 专业图表绘制指南 作  者:张杰 著 定  价:129 出 版 社:电子工业出版社 出版日期:2020年03月01日 页  数:303 装  帧:平装 ISBN:97871 ...

  6. Python量化投资——投资组合的评价和可视化(下):使用Matplotlib生成专业的投资回测数据可视化仪表盘【源码+详解】

    使用Matplotlib生成专业的数据可视化仪表盘(下篇) 投资结果的可视化(下篇) 图表的布局规划及格式设定 图表布局 格式设定 表头和回测结果摘要信息 表1:绘制收益率曲线图 1,绘制投资收益率以 ...

  7. (毕设2)esp8266+dht11+mysql+flask+echarts单片机温湿度数据采集网页实时可视化(附源码)

    目录 前言 单片机端 服务器端 网页端 成果展示 源码下载 前言 作者:齐鲁师范学院18云计算孙浩 QQ:2535640842 开发环境:Linux,Arduino ide, PyCharm 2020 ...

  8. python基于Echarts的城科就业数据可视化系统毕业设计源码150915

    Python城科就业数据可视化系统 摘 要 对于处理广泛的数据并整合到本地,Python爬虫有着自已强大的功能,面对城科就业数据可视化系统研究,我们考虑借助Python爬虫的功能对其实现相应的处理,本 ...

  9. 计算机毕业设计SSMJava远程健康数据管理系统【附源码数据库】

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

最新文章

  1. 阿里云双12服务器和阿里云双12数据库活动又开始了
  2. CVPR 2020 Oral | 旷视提出Circle Loss,革新深度特征学习范式
  3. feign直接走熔断_【121期】面试官:什么是熔断?什么是服务降级?
  4. 【运筹学】线性规划 单纯形法 阶段总结 ( 初始基可行解 | 判定最优解 | 迭代 | 得到最优解 | 全流程详细解析 ) ★
  5. 几句话总结21种设计模式。
  6. Pollar Rho算法
  7. Linux中msiexec无法运行,使用msiexec.exe绕过应用程序白名单(多种方法)
  8. java学习中,异常和错误的简介、捕获异常、抛出异常、自定义异常、finally关键字(java 学习中的小记录)
  9. Entity Framework 4 in Action读书笔记——第四章:使用LINQ to Entities查询:排序和连接数据...
  10. 线程池ThreadPoolExecutor使用
  11. 序列标注模型结果评估模块seqeval学习使用
  12. html页面简单访问限制
  13. autojs 复制到粘贴板_JS复制到剪贴板示例代码
  14. php代码加nofollow,给WordPress友情链接添加Nofollow方法详解
  15. [已解决]Notepad++ 无法安装HexEditor
  16. 人工智能的发展历程和未来发展趋势
  17. 【毛坦厂复读生心中所想】—— 我在大学挺好的【内附学习资源和路线】
  18. 简单的使用css画勾、叉、三角、大于号
  19. ESP32 DEVKIT V1 资料分享-原理图+引脚图
  20. web兼容性面试题及答案

热门文章

  1. 你应该学点哲学的20个理由:不为拥有深奥的思想,只为更好地生活
  2. Perf -- Linux下的系统性能调优工具,第 2 部分
  3. OSChina 周日乱弹 ——书中自有颜如玉
  4. 喜马拉雅随车听开通啦
  5. 出国读计算机专业好吗,计算机美国读研 - 美国留学读计算机专业好不好
  6. SQL 字母大小写转换函数UPPER()、UCASE()、LOWER()和LCASE()
  7. 网易互娱在线编程纪要
  8. 网络对抗技术——实验四:恶意代码技术
  9. ssm客户关系管理系统
  10. linux ip_conntrack_max,解?Linux NAT ip_conntrack: table full的方法