zoukankan      html  css  js  c++  java
  • 5月9日

    天我们来攻克地图下钻这一难点

    echarts官方文档的介绍中有关于南丁格尔图和旭日图的下钻,它们的思想归根结底就是使用新的chart来覆盖旧的chart,而且整个过程相当平滑,文档甚至将其作为了卖点(但地图下钻可没这流畅功能)

    那么我们首先要写一个对应城市的js函数

    复制代码
    function City(province){
                    
                        //console.log(cities)
                        var myChartc = echarts.init(document.querySelector('#main'))
                        myChartc.setOption( options={
                            slient: true,    
                            title : {
                                text: '中国疫情数据地图',
                                left: 'center'
                            },
                            
                            legend: {
                                orient: 'vertical',
                                selectedMode:'single',
                                left: 'left',
                                data:['累计确诊人数','现存病例','疑似感染者']
                            },
                            visualMap: {
                                min: 0,
                                max: 500,
                                left: 'left',
                                top: 'bottom',
                                text:['高','低'],           // 文本,默认为数值文本
                                calculable : true
                                
                            },
                            toolbox: {
                                show: true,
                                orient : 'vertical',
                                left: 'right',
                                top: 'center',
                                feature : {
                                    mark : {show: true},
                                    
                                    saveAsImage : {show: true}
                                }
                            },
                            series : [
                                {
                                    name: '累计确诊人数',
                                    type: 'map',
                                    mapType: province,
                                    roam: false,
                                    label: {
                                        normal: {
                                            show:true
                                        },
                                        emphasis: {
                                            show:true
                                        }
                                    },
                                    data:nowconfirm
                                },
                                {
                                    name: '现存病例',
                                    type: 'map',
                                    mapType: province,
                                    label: {
                                        normal: {
                                            show:true
                                        },
                                        emphasis: {
                                            show:true
                                        }
                                    },
                                    data:confirm
                                },
                                {
                                    name: '疑似感染者',
                                    type: 'map',
                                    mapType: province,
                                    label: {
                                        normal: {
                                            show:true
                                        },
                                        emphasis: {
                                            show:true
                                        }
                                    },
                                    data:suspect
                                }
                            ],
                            tooltip : {
                                trigger: 'item',
                                formatter: function(params) {
                                    var res = params.name+'<br/>';
                                    var myseries = options.series;
                                    for (var i = 0; i < myseries.length; i++) {
                                        for(var j=0;j<myseries[i].data.length;j++){
                                            if(myseries[i].data[j].name==params.name){
                                                res+=myseries[i].name +' : '+myseries[i].data[j].value+'</br>';
                                            }
                                        }
                                    }
                                    return res;
                                }
                            }
                            
                        })//myChart.setOption
                                         
                            myChartc.on('click', function (params) {
                                var str_p = params.data.name;
                            });
                 
            }//function city 
    复制代码

    接下来修改china函数中的click事件变成这个样子:

    myChart.on('click', function (params) {
            var str_p = params.data.name;
            City(str_p);
        });

    之后我们就可以愉快地使用啦!

    具体效果如下:

    点击一下

  • 相关阅读:
    利用 FFmpeg 和 ImageMagick, AVI 转 GIF(不失真)
    TinyMCE textarea 输入框外部程序动态修改方法
    eclipse快速向下复制行
    ${factoryList }后面有空格不影响
    pre标签
    js备忘录_2
    eclipse 中 大小写切换:ctrl+shift+x 转为大写 ctrl+shift+y 转为小写
    js备忘录_1
    缓存
    myeclipse bug
  • 原文地址:https://www.cnblogs.com/ldy2396/p/14910117.html
Copyright © 2011-2022 走看看