2019-nCov疫情实时趋势数据可视化Echarts学习(3):JSON数据和echarts柱图和折线图表的开发

简介: 2019-nCov疫情实时趋势数据可视化Echarts学习(3):JSON数据和echarts柱图和折线图表的开发

了解本次学习,先回顾《2019-nCov疫情实时趋势数据可视化Echarts学习(2):获取API数据接口后数据的清洗、处理及JSON标准格式的输出

一,将JSON数据按照echarts的data要求进行格式化;

            var area = [], confirmed = [], confirmedRelative = [], crued = [], died = [];
            for (var i = 0; i < dataObj.component[0].caseList.length; i++) {
                area.push(dataObj.component[0].caseList[i].area);
                confirmed.push(dataObj.component[0].caseList[i].confirmed);
                confirmedRelative.push(dataObj.component[0].caseList[i].confirmedRelative);
                crued.push(dataObj.component[0].caseList[i].crued);
                died.push(dataObj.component[0].caseList[i].died);
            }


二、引入echarts.min.js,并创建echart的柱图和折线图;

 var dom = document.getElementById("echart1");
            var myChart = echarts.init(dom);
            var option = {
                title: {
                    text: dataObj.component[0].title,
                    subtext: '更新时间:' + dataObj.component[0].mapLastUpdatedTime,
                    x: 'center',
                    top: '3%',
                    textStyle: {
                        color: '#fff',
                        fontSize: '16'
                    }
                },
                tooltip: {
                    trigger: 'axis',
                    axisPointer: {
                        type: 'line'
                    },
                    confine: true,
                },
                legend: {
                    data: ['确诊人数', '疑是人数', '治愈人数', '死亡人数'],
                    y: 'bottom',
                    textStyle: {
                        color: '#fff',
                        fontSize: '12'
                    }
                },
                gird: {
                    right: '2%',
                    left: '5%',
                    top: '10%',
                    containLabel: true
                },
                xAxis: {
                    type: 'category',
                    axisLine: {
                        lineStyle: {
                            color: '#fff'
                        }
                    },
                    data: area
                },
                yAxis: [{
                    type: 'value',
                    axisLine: {
                        lineStyle: {
                            color: '#fff'
                        }
                    }
                },
                    {
                        type: 'value',
                        axisLine: {
                            lineStyle: {
                                color: '#fff'
                            }
                        }
                    }],
                series: [{
                    data: confirmed,
                    type: 'bar',
                    yAxisIndex: 1,
                    name: '确诊人数',
                    label: {
                        show: true,
                        position: 'top',
                        textStyle: {
                            color: '#fff'
                        }
                    }
                }, {
                    data: confirmedRelative,
                    type: 'line',
                    name: '疑是人数'
                }, {
                    data: crued,
                    type: 'line',
                    name: '治愈人数'
                }, {
                    data: died,
                    type: 'line',
                    name: '死亡人数'
                }
                ]
            };
            myChart.setOption(option);
            window.addEventListener("resize", function () {
                myChart.resize();
            });


三、实现数据的自动刷新,匹配JSON数据的刷新时间;

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


完整代码:

 /*5.echarts的数据利用*/
        function getEcharts1() {
            var area = [], confirmed = [], confirmedRelative = [], crued = [], died = [];
            for (var i = 0; i < dataObj.component[0].caseList.length; i++) {
                area.push(dataObj.component[0].caseList[i].area);
                confirmed.push(dataObj.component[0].caseList[i].confirmed);
                confirmedRelative.push(dataObj.component[0].caseList[i].confirmedRelative);
                crued.push(dataObj.component[0].caseList[i].crued);
                died.push(dataObj.component[0].caseList[i].died);
            }
            //console.log(area);
            var dom = document.getElementById("echart1");
            var myChart = echarts.init(dom);
            var option = {
                title: {
                    text: dataObj.component[0].title,
                    subtext: '更新时间:' + dataObj.component[0].mapLastUpdatedTime,
                    x: 'center',
                    top: '3%',
                    textStyle: {
                        color: '#fff',
                        fontSize: '16'
                    }
                },
                tooltip: {
                    trigger: 'axis',
                    axisPointer: {
                        type: 'line'
                    },
                    confine: true,
                },
                legend: {
                    data: ['确诊人数', '疑是人数', '治愈人数', '死亡人数'],
                    y: 'bottom',
                    textStyle: {
                        color: '#fff',
                        fontSize: '12'
                    }
                },
                gird: {
                    right: '2%',
                    left: '5%',
                    top: '10%',
                    containLabel: true
                },
                xAxis: {
                    type: 'category',
                    axisLine: {
                        lineStyle: {
                            color: '#fff'
                        }
                    },
                    data: area
                },
                yAxis: [{
                    type: 'value',
                    axisLine: {
                        lineStyle: {
                            color: '#fff'
                        }
                    }
                },
                    {
                        type: 'value',
                        axisLine: {
                            lineStyle: {
                                color: '#fff'
                            }
                        }
                    }],
                series: [{
                    data: confirmed,
                    type: 'bar',
                    yAxisIndex: 1,
                    name: '确诊人数',
                    label: {
                        show: true,
                        position: 'top',
                        textStyle: {
                            color: '#fff'
                        }
                    }
                }, {
                    data: confirmedRelative,
                    type: 'line',
                    name: '疑是人数'
                }, {
                    data: crued,
                    type: 'line',
                    name: '治愈人数'
                }, {
                    data: died,
                    type: 'line',
                    name: '死亡人数'
                }
                ]
            };
            myChart.setOption(option);
            window.addEventListener("resize", function () {
                myChart.resize();
            });
        }
        var interval;
        getEcharts1();
        clearInterval(interval);
        interval = setInterval(function () {
            getEcharts1();
        }, 60 * 1000);//60s刷新一次数据;


上面只是将JSON数据和Echarts进行了整合开发,能不能按照确认人数的降序排列?能不能完成像《2019-nCov疫情实时趋势数据可视化Echarts学习(1):柱图和折线图》纵向展示呢?

Done!

相关文章
|
30天前
|
JavaScript 数据可视化 BI
echarts的使用 超好用的报表制作、数据的图形化展示
您提供的链接是关于echarts使用的博客文章,它介绍了如何使用echarts进行数据的图形化展示,包括制作报表和图表。echarts是一个强大的数据可视化工具,能够创建折线图、柱状图、饼图等多种图表类型。文章还提供了一个Demo演示和项目结构的图片,以及官网链接供读者参考。
echarts的使用 超好用的报表制作、数据的图形化展示
|
30天前
|
XML SQL JavaScript
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
这篇文章介绍了如何在Vue页面中结合SpringBoot、MyBatis、ElementUI和ECharts,实现从数据库获取数据并展示为图表的过程,包括前端和后端的代码实现以及遇到的问题和解决方法。
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
|
17天前
|
存储 JSON 测试技术
Python中最值得学习的第三方JSON库
Python中最值得学习的第三方JSON库
|
24天前
|
前端开发 数据可视化 JavaScript
【揭秘神器】如何用Pyecharts轻松召唤出Echarts?只需几行Python代码,让你的数据瞬间生动起来!
【8月更文挑战第21天】Pyecharts是一款基于Python的图表生成库,利用Echarts强大的JavaScript可视化能力,让开发者无需编写前端代码即可在Python环境中创建美观图表。本文通过实例演示如何安装Pyecharts并生成一个展示城市气温分布的柱状图,包括基本图表生成及自定义样式设置,如颜色调整、图例显示等,最终将图表嵌入HTML文件展示,适合各水平开发者快速掌握数据可视化技能。
27 0
|
3月前
|
数据可视化 数据挖掘
ECharts综合案例一:近七天跑步数据
使用ECharts进行一周跑步数据分析,通过雷达图展示多维度指标(如距离、速度、时间),颜色对比体现个人与平均表现。折线图则清晰显示每日里程趋势,代码示例展示了自定义的`radar`和`line`图表配置。图表交互性强,支持点击高亮,动画流畅,提供完整代码资源。#ECharts #跑步数据 #数据可视化
114 3
ECharts综合案例一:近七天跑步数据
|
2月前
|
小程序 前端开发
【微信小程序-原生开发】实用教程22 - 绘制图表(引入 echarts,含图表的懒加载-获取到数据后再渲染图表,多图表加载等技巧)
【微信小程序-原生开发】实用教程22 - 绘制图表(引入 echarts,含图表的懒加载-获取到数据后再渲染图表,多图表加载等技巧)
105 0
|
2月前
|
JSON JavaScript 前端开发
|
2月前
echarts 数据格式化
echarts 数据格式化
31 0
|
3月前
|
XML JSON JavaScript
杨老师课堂之零基础学习JSON知识点
杨老师课堂之零基础学习JSON知识点
21 0
|
25天前
|
JSON 前端开发 JavaScript

热门文章

最新文章