ECharts 是一款功能强大的 JavaScript 数据可视化库,它提供了丰富的图表类型,其中地图图表是 ECharts 中非常受欢迎的一个功能。通过 ECharts 地图图表,我们可以轻松地将各种地图数据可视化,让数据更加直观易懂。本文将为您介绍 30 个实用案例,帮助您快速掌握 ECharts 地图图表的使用方法。

案例一:中国地图数据可视化

使用 ECharts 地图图表,我们可以将中国地图上的数据以不同颜色或形状进行展示,例如展示各省的GDP、人口数量等。

// 中国地图数据可视化示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '中国地图数据可视化',
        subtext: '示例',
        left: 'center'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 10000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],           // 文本,默认为数值文本
        calculable: true
    },
    series: [
        {
            name: '中国',
            type: 'map',
            mapType: 'china',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                {name: '上海', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

myChart.setOption(option);

案例二:世界地图数据可视化

除了中国地图,ECharts 也支持世界地图的绘制。以下是一个世界地图数据可视化的示例:

// 世界地图数据可视化示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '世界地图数据可视化',
        subtext: '示例',
        left: 'center'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b}: {c}'
    },
    visualMap: {
        min: 0,
        max: 10000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '世界',
            type: 'map',
            mapType: 'world',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: 'China', value: Math.round(Math.random() * 1000)},
                {name: 'USA', value: Math.round(Math.random() * 1000)},
                // ... 其他国家数据
            ]
        }
    ]
};

myChart.setOption(option);

案例三:省市区级地图数据可视化

ECharts 地图图表还支持省市区级地图的绘制,以下是一个省市区级地图数据可视化的示例:

// 省市区级地图数据可视化示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '省市区级地图数据可视化',
        subtext: '示例',
        left: 'center'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 10000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '省市区级',
            type: 'map',
            mapType: 'province',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '北京市', value: Math.round(Math.random() * 1000)},
                {name: '上海市', value: Math.round(Math.random() * 1000)},
                // ... 其他省市数据
            ]
        }
    ]
};

myChart.setOption(option);

案例四:自定义地图数据可视化

除了内置的地图类型,ECharts 还支持自定义地图数据可视化。以下是一个自定义地图数据可视化的示例:

// 自定义地图数据可视化示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '自定义地图数据可视化',
        subtext: '示例',
        left: 'center'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 10000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '自定义',
            type: 'map',
            mapType: 'custom',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '点1', value: Math.round(Math.random() * 1000)},
                {name: '点2', value: Math.round(Math.random() * 1000)},
                // ... 其他自定义数据
            ]
        }
    ]
};

myChart.setOption(option);

案例五:地图动画效果

ECharts 地图图表支持丰富的动画效果,以下是一个地图动画效果的示例:

// 地图动画效果示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '地图动画效果',
        subtext: '示例',
        left: 'center'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 10000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '动画效果',
            type: 'map',
            mapType: 'china',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                {name: '上海', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

myChart.setOption(option);

案例六:地图点击事件

ECharts 地图图表支持地图点击事件,以下是一个地图点击事件的示例:

// 地图点击事件示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '地图点击事件',
        subtext: '示例',
        left: 'center'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 10000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '点击事件',
            type: 'map',
            mapType: 'china',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                {name: '上海', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

myChart.on('click', function (params) {
    console.log(params.name); // 输出点击的省份名称
});

myChart.setOption(option);

案例七:地图联动

ECharts 地图图表支持地图联动,以下是一个地图联动的示例:

// 地图联动示例代码
var myChart1 = echarts.init(document.getElementById('main1'));
var myChart2 = echarts.init(document.getElementById('main2'));

var option1 = {
    title: {
        text: '地图联动1',
        subtext: '示例',
        left: 'center'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 10000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '联动1',
            type: 'map',
            mapType: 'china',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                {name: '上海', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

var option2 = {
    title: {
        text: '地图联动2',
        subtext: '示例',
        left: 'center'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 10000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '联动2',
            type: 'map',
            mapType: 'china',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                {name: '上海', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

myChart1.setOption(option1);
myChart2.setOption(option2);

myChart1.on('click', function (params) {
    myChart2.setOption(option2);
});

案例八:地图数据动态更新

ECharts 地图图表支持地图数据的动态更新,以下是一个地图数据动态更新的示例:

// 地图数据动态更新示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '地图数据动态更新',
        subtext: '示例',
        left: 'center'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 10000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '动态更新',
            type: 'map',
            mapType: 'china',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                {name: '上海', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

myChart.setOption(option);

// 动态更新数据
setInterval(function () {
    var data = [];
    for (var i = 0; i < 34; i++) {
        data.push({
            name: '北京',
            value: Math.round(Math.random() * 1000)
        });
    }
    myChart.setOption({
        series: [{
            data: data
        }]
    });
}, 2000);

案例九:地图自定义样式

ECharts 地图图表支持自定义样式,以下是一个地图自定义样式的示例:

// 地图自定义样式示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '地图自定义样式',
        subtext: '示例',
        left: 'center'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 10000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '自定义样式',
            type: 'map',
            mapType: 'china',
            roam: false,
            label: {
                show: true
            },
            itemStyle: {
                normal: {
                    areaColor: '#323c48',
                    borderColor: '#111'
                },
                emphasis: {
                    areaColor: '#2a333d'
                }
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                {name: '上海', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

myChart.setOption(option);

案例十:地图多层级展示

ECharts 地图图表支持多层级展示,以下是一个地图多层级展示的示例:

// 地图多层级展示示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '地图多层级展示',
        subtext: '示例',
        left: 'center'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 10000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '多层级展示',
            type: 'map',
            mapType: 'china',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                {name: '上海', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        },
        {
            name: '多层级展示2',
            type: 'map',
            mapType: 'china',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '北京市', value: Math.round(Math.random() * 1000)},
                {name: '上海市', value: Math.round(Math.random() * 1000)},
                // ... 其他城市数据
            ]
        }
    ]
};

myChart.setOption(option);

案例十一:地图缩放和平移

ECharts 地图图表支持缩放和平移,以下是一个地图缩放和平移的示例:

// 地图缩放和平移示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '地图缩放和平移',
        subtext: '示例',
        left: 'center'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 10000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '缩放和平移',
            type: 'map',
            mapType: 'china',
            roam: true, // 启用缩放和平移
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                {name: '上海', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

myChart.setOption(option);

案例十二:地图事件监听

ECharts 地图图表支持事件监听,以下是一个地图事件监听的示例:

// 地图事件监听示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '地图事件监听',
        subtext: '示例',
        left: 'center'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 10000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '事件监听',
            type: 'map',
            mapType: 'china',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                {name: '上海', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

myChart.on('click', function (params) {
    console.log(params.name); // 输出点击的省份名称
});

myChart.setOption(option);

案例十三:地图数据过滤

ECharts 地图图表支持数据过滤,以下是一个地图数据过滤的示例:

// 地图数据过滤示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '地图数据过滤',
        subtext: '示例',
        left: 'center'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 10000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [
        {
            name: '数据过滤',
            type: 'map',
            mapType: 'china',
            roam: false,
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                {name: '上海', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

myChart.setOption(option);

// 过滤数据
myChart.dispatchAction({
    type: 'dataZoom',
    start: 0,
    end: 50
});

案例十四:地图数据排序

ECharts 地图图表支持数据排序,以下是一个地图数据排序的示例:

”`javascript // 地图数据排序示例代码 var myChart = echarts.init(document.getElementById(‘main’));

var option = {

title: {
    text: '地图数据排序',
    subtext: '示例',
    left: 'center'
},
tooltip: {
    trigger: 'item'
},
visualMap: {
    min: 0,
    max: 10000,
    left: 'left',
    top: 'bottom',
    text: ['高','低'],
    calculable: true
},
series: [
    {
        name: '数据排序