echarts中视觉映射器(visualMap)与时间轴(timeline)混用的实现方法

Posted hunter_Cecil

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了echarts中视觉映射器(visualMap)与时间轴(timeline)混用的实现方法相关的知识,希望对你有一定的参考价值。

1、简述
  echarts中的 timeline 组件,提供了在多个 ECharts option 间进行切换、播放等操作的功能。
  与其他组件些不同,它需要操作『多个option』。 所以除了基准的baseOption外,我们还需要设置一个原子option和多个原子option的复合option。

2. baseOption实现方式如下(以石家庄市地图为例):

var mapDataByAreaTest = [ //各区域初始值
        {name: \'长安区\', value: 12},
        {name: \'辛集市\', value: 0},
        {name: \'无极县\', value: 0},
        {name: \'赵县\',   value: 0},
        {name: \'平山县\', value: 0},
        {name: \'元氏县\', value: 0},
        {name: \'灵寿县\', value: 0},
        {name: \'赞皇县\', value: 0},
        {name: \'深泽县\', value: 0},
        {name: \'高邑县\', value: 0},
        {name: \'新华区\', value: 34},
        {name: \'井陉县\', value: 0},
        {name: \'行唐县\', value: 0},
        {name: \'正定县\', value: 31},
        {name: \'桥西区\', value: 5},
        {name: \'栾城区\', value: 21},
        {name: \'鹿泉区\', value: 25},
        {name: \'藁城区\', value: 30},
        {name: \'裕华区\', value: 7},
        {name: \'井陉矿区\', value: 45},
        {name: \'晋州市\', value: 0},
        {name: \'新乐市\', value: 0}
];
var timeByMonth = [\'1月\',\'2月\',\'3月\',\'4月\',\'5月\',\'6月\',\'7月\',\'8月\',\'9月\',\'10月\',\'11月\',\'12月\'];//timeline初始值
var baseOption = {
	timeline: {
        show: true,
        axisType: \'category\',
        autoPlay: true,
        currentIndex: 5,
        playInterval: 5000,
        symbolSize: 12,
        checkpointStyle: {
            symbol: \'circle\',
            symbolSize: 18,
            color: \'#00d3e7\',
            borderWidth: 2,
            borderColor: "#00d3e7"
        },
        label: {
            normal: {
                show: true,
                textStyle: {
                    fontSize: \'14\',
                    color:\'#fff\'
                }
            },
            emphasis:{
                textStyle: {
                    fontSize: \'18\',
                    color:\'#00d3e7\'
                }
            }
        },
        data: timeByMonth
	},
	visualMap: {
        min: 0,
        max: 50,
        left: \'16%\',
        top: \'68%\',
        text: [\'高\',\'低\'],
        calculable: true,
        itemWidth: 30,
        inRange: {
            color: [\'#56c5d0\',\'#eac736\',\'#d94e5d\']
        },
        textStyle: {
            fontSize: \'16\',
            color:\'#fff\'
        }
	},
	series: [{
        name: \'\',
        type: \'map\',
        mapType: \'sjz\',
        itemStyle:{
            normal:{label:{show:true}},
            emphasis:{label:{show:true}}
        },
        roam: false,
        label: {
            normal: {
                show: true,
                textStyle: {
                    fontSize: \'14\',
                    color:\'#fff\'
                }
            },
            emphasis: {
                show: true
            }
        },
        data:mapDataByAreaTest
    }]
}; 

3. options实现方式如下:

varar options = [];
var mapOption = {};
for(var i=0;i<timeByMonth.length;i++){
    options.push({
        series: baseOption.series//此处可以根据实际情况循环放置每个option的series对应的data值
    });
}
mapOption.baseOption = baseOption;
mapOption.options = options;    

4. 页面地图绘制: 

$.get(\'/data/sjz_map.json\', function (data) {
    echarts.registerMap(\'sjz\', data);
    var myChart = echarts.init(document.getElementById(\'sjz_map\'));
    myChart.setOption(mapOption);

    myChart.on("timelinechanged", function(param){
    / /TODO DO SOMETING ELSE HERE
        myChart.setOption(mapOption);
    });
});

 

以上是关于echarts中视觉映射器(visualMap)与时间轴(timeline)混用的实现方法的主要内容,如果未能解决你的问题,请参考以下文章

使用echarts进行数据图形化显示,为啥visualMap没有起作用

使用echarts进行数据图形化显示,为啥visualMap没有起作用

Echarts地图自定义颜色

visualMap视觉映射组件

解决Echarts根据x轴值分段展示...的过程

Echart图表使用