2019-nCov疫情实时趋势数据可视化Echarts学习(4):JSON数据数组排序和各省份数据柱图

简介: 2019-nCov疫情实时趋势数据可视化Echarts学习(4):JSON数据数组排序和各省份数据柱图

20200216180300129.png


效果如上。


考虑到实际的情况,本例未延续(2)、(3)中的API接口,而采用https://www.tianqiapi.com/api?version=epidemic&appid=23035354&appsecret=8YvlPNrz,免费公用接口。

在于:

1.数据格式更规范,会减少数据清洗和处理的步骤和时间;

2.数据更为详细,遍及省份、市级数据;

综上因素考虑,本学习案例稍有调整。

一、$.get()获取API数据,并对返回的数据,进行分析处理;

        $.get('https://www.tianqiapi.com/api?version=epidemic&appid=23035354&appsecret=8YvlPNrz', function (res, status) {
            /*1.读取数据,查看数据格式,按照需求进行数据清洗处理;*/
            console.log(res.data);
})

二、对数据进行排序处理,使用到sort函数,自行百度;

            /*2.标准数据输出,可以在数据中查询area,调用对应的省份、市,本例已湖北为例*/
            var dataObj = res.data.area[0];//省份数据级别
            //console.log(dataObj);
            var arr = res.data.area[0].cities;//市级数据级别
            //console.log(arr);
            /*3.按照确认人数降序排列*/
            var formal = arr.sort(function (a, b) {
                return a.confirmedCount - b.confirmedCount;
            });

三、输出echarts数据格式数组;

            /*4.输出echarts数据格式数组*/
            var cityName = [], confirmedCount = [], suspectedCount = [], curedCount = [], deadCount = [];
            for (var i = 0; i < formal.length; i++) {
                cityName.push(formal[i].cityName);
                confirmedCount.push(formal[i].confirmedCount);
                suspectedCount.push(formal[i].suspectedCount);
                curedCount.push(formal[i].curedCount);
                deadCount.push(formal[i].deadCount);
            }

四、echaets渲染图表

var dom = document.getElementById("echart1");
            var myChart = echarts.init(dom);
            var option = {
                title: {
                    text: dataObj.preProvinceName + '疫情实时数据报告',
                    subtext: '更新时间:' + res.data.date,
                    x: 'center',
                    top: '0',
                    textStyle: {
                        color: '#fff',
                        fontSize: '16'
                    }
                },
                tooltip: {
                    trigger: 'axis',
                    axisPointer: {
                        type: 'line'
                    },
                    confine: true,
                },
                legend: {
                    data: ['确诊人数', '疑是人数', '治愈人数', '死亡人数'],
                    y: 'bottom',
                    textStyle: {
                        color: '#fff',
                        fontSize: '12'
                    }
                },
                gird: {
                    right: '5%',
                    left: '5%',
                    top: '15%',
                    bottom: '5%',
                    containLabel: true
                },
                yAxis: {
                    type: 'category',
                    axisLine: {
                        lineStyle: {
                            color: '#fff'
                        }
                    },
                    data: cityName
                },
                xAxis: [{
                    type: 'value',
                    axisLine: {
                        lineStyle: {
                            color: '#fff'
                        }
                    }
                },
                    {
                        type: 'value',
                        axisLine: {
                            lineStyle: {
                                color: '#fff'
                            }
                        }
                    }],
                series: [{
                    data: confirmedCount,
                    type: 'bar',
                    xAxisIndex: 1,
                    name: '确诊人数',
                    label: {
                        show: true,
                        position: 'right',
                        textStyle: {
                            color: '#fff'
                        }
                    }
                }, {
                    data: suspectedCount,
                    type: 'line',
                    name: '疑是人数'
                }, {
                    data: curedCount,
                    type: 'line',
                    name: '治愈人数'
                }, {
                    data: deadCount,
                    type: 'line',
                    name: '死亡人数'
                }
                ]
            };
            myChart.setOption(option);
            window.addEventListener("resize", function () {
                myChart.resize();
            });

五,定时刷新,实现自动加载数据;

   var interval;
    getProvince();
    clearInterval(interval);
    interval = setInterval(function () {
        getProvince();
    }, 60 * 1000);//60s刷新一次数据;


至此,2019-nCov疫情实时趋势数据API学习系列,全部结束!

Done!

相关文章
|
16天前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
1天前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
5天前
|
JSON 缓存 前端开发
PHP如何高效地处理JSON数据:从编码到解码
在现代Web开发中,JSON已成为数据交换的标准格式。本文探讨了PHP如何高效处理JSON数据,包括编码和解码的过程。通过简化数据结构、使用优化选项、缓存机制及合理设置解码参数等方法,可以显著提升JSON处理的性能,确保系统快速稳定运行。
|
20天前
|
JSON JavaScript Java
在Java中处理JSON数据:Jackson与Gson库比较
本文介绍了JSON数据交换格式及其在Java中的应用,重点探讨了两个强大的JSON处理库——Jackson和Gson。文章详细讲解了Jackson库的核心功能,包括数据绑定、流式API和树模型,并通过示例演示了如何使用Jackson进行JSON解析和生成。最后,作者分享了一些实用的代码片段和使用技巧,帮助读者更好地理解和应用这些工具。
在Java中处理JSON数据:Jackson与Gson库比较
|
28天前
|
XML 前端开发 数据格式
echarts柱图前后端代码SpringCloud+Vue3
echarts柱图前后端代码SpringCloud+Vue3
49 1
|
30天前
|
JSON JavaScript API
(API接口系列)商品详情数据封装接口json数据格式分析
在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦!
|
1月前
|
JSON 前端开发 Java
【Spring】“请求“ 之传递 JSON 数据
【Spring】“请求“ 之传递 JSON 数据
83 2
|
22天前
|
JSON API 数据格式
商品详情数据JSON格式示例参考(api接口)
JSON数据格式的商品详情数据通常包含商品的多个层级信息,以下是一个综合多个来源信息的JSON数据格式的商品详情数据示例参考:
|
23天前
|
存储 JSON 前端开发
JSON与现代Web开发:数据交互的最佳选择
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也便于机器解析和生成。它以文本格式存储数据,常用于Web应用中的数据传输,尤其是在客户端和服务器之间。
32 0
|
25天前
|
存储 JavaScript 前端开发
TypeScript :使用mock提供数据&as const 的使用&tsconfig.json配置
本文介绍了如何在项目中使用 Mock 提供数据,包括安装依赖、配置 Vite 和 TypeScript,以及如何使用 `as const`、元组和 tsconfig.json 配置文件。通过这些配置,可以实现更灵活和高效的开发体验。