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!

相关文章
|
2月前
|
JSON JavaScript 定位技术
vue中使用echarts实现省市地图绘制,根据数据显示省市天气图标及温度信息
vue中使用echarts实现省市地图绘制,根据数据显示省市天气图标及温度信息
308 1
|
3月前
|
JavaScript 定位技术
echarts地图数据信息流向图效果
本文介绍了如何使用 ECharts 创建一个地图数据信息流向图效果,包括设置地理坐标、线条动画和流向图的实现方法,并通过 Vue.js 封装了一个可重用的 ECharts 地图组件。
193 23
echarts地图数据信息流向图效果
|
3月前
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
51 1
|
2月前
|
JavaScript API
Echarts中单独为每个legend图例设置样式-根据数据正负显示不同样式
通过上述方法,我们便能够在ECharts中根据数据的正负为每个图例项设置不同的样式,增强了图表的可读性和表现力。这种方法虽然略显间接,但不失为一种灵活的解决方案。
247 2
|
2月前
|
XML 前端开发 数据格式
echarts柱图前后端代码SpringCloud+Vue3
echarts柱图前后端代码SpringCloud+Vue3
60 1
|
2月前
|
JSON JavaScript 前端开发
vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息,增加涟漪特效动画效果
vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息,增加涟漪特效动画效果
667 0
|
4月前
|
存储 JSON 测试技术
Python中最值得学习的第三方JSON库
Python中最值得学习的第三方JSON库
|
4月前
|
前端开发 数据可视化 JavaScript
【揭秘神器】如何用Pyecharts轻松召唤出Echarts?只需几行Python代码,让你的数据瞬间生动起来!
【8月更文挑战第21天】Pyecharts是一款基于Python的图表生成库,利用Echarts强大的JavaScript可视化能力,让开发者无需编写前端代码即可在Python环境中创建美观图表。本文通过实例演示如何安装Pyecharts并生成一个展示城市气温分布的柱状图,包括基本图表生成及自定义样式设置,如颜色调整、图例显示等,最终将图表嵌入HTML文件展示,适合各水平开发者快速掌握数据可视化技能。
63 0
|
2月前
|
小程序 前端开发 JavaScript
微信小程序图表制作利器:ECharts组件的使用与技巧
微信小程序图表制作利器:ECharts组件的使用与技巧
81 1
|
2月前
|
JavaScript
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
508 0