教你用ECharts轻松绘制地图图表:20个实战案例,快速掌握地图数据可视化技巧

2026-11-08 0 阅读

在数据可视化领域,地图图表是一种非常直观且富有表现力的工具。ECharts,作为一款强大的开源可视化库,提供了丰富的地图图表绘制功能。通过本文,我们将通过20个实战案例,带你快速掌握ECharts地图数据可视化的技巧。

实战案例一:中国地图基础绘制

首先,让我们从最基础的地图绘制开始。以下是一个使用ECharts绘制中国地图的简单示例:

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '中国地图'
    },
    tooltip: {},
    visualMap: {
        min: 0,
        max: 100,
        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同样支持全球地图的绘制。以下是一个全球地图的示例:

// ... 省略初始化echarts实例和配置项

var option = {
    // ... 省略其他配置项
    series: [
        {
            name: '全球',
            type: 'map',
            mapType: 'world',
            roam: true,
            label: {
                show: true
            },
            data: [
                {name: 'United States',value: Math.round(Math.random()*1000)},
                {name: 'Canada',value: Math.round(Math.random()*1000)},
                // ... 其他国家数据
            ]
        }
    ]
};

// ... 省略使用配置项显示图表

实战案例三:地图热力图

热力图是一种将数据以颜色深浅表示的地图形式。以下是一个使用ECharts绘制热力图的示例:

// ... 省略初始化echarts实例和配置项

var option = {
    // ... 省略其他配置项
    series: [
        {
            name: '热力图',
            type: 'heatmap',
            coordinateSystem: 'geo',
            data: [
                {name: '北京',value: [116.46,39.92]},
                {name: '上海',value: [121.48,31.22]},
                // ... 其他数据点
            ]
        }
    ]
};

// ... 省略使用配置项显示图表

实战案例四:地图点击事件

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

// ... 省略初始化echarts实例和配置项

myChart.on('click', function (params) {
    if (params.componentType === 'series') {
        console.log('点击了:', params.name);
    }
});

// ... 省略使用配置项显示图表

实战案例五:地图缩放与平移

ECharts地图图表支持缩放和平移操作。以下是一个实现地图缩放和平移的示例:

// ... 省略初始化echarts实例和配置项

myChart.on('click', function (params) {
    if (params.componentType === 'series') {
        myChart.dispatchAction({
            type: 'geoZoom',
            // 可以指定缩放的中心点和比例
            // center: [116.46,39.92],
            // zoom: 5
        });
    }
});

// ... 省略使用配置项显示图表

实战案例六:地图动画效果

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

// ... 省略初始化echarts实例和配置项

var option = {
    // ... 省略其他配置项
    series: [
        {
            name: '动画效果',
            type: 'map',
            mapType: 'china',
            animation: true,
            data: [
                {name: '北京',value: Math.round(Math.random()*1000)},
                {name: '上海',value: Math.round(Math.random()*1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

// ... 省略使用配置项显示图表

实战案例七:地图自定义样式

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

// ... 省略初始化echarts实例和配置项

var option = {
    // ... 省略其他配置项
    series: [
        {
            name: '自定义样式',
            type: 'map',
            mapType: 'china',
            label: {
                emphasis: {
                    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)},
                // ... 其他省份数据
            ]
        }
    ]
};

// ... 省略使用配置项显示图表

实战案例八:地图多层级展示

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

// ... 省略初始化echarts实例和配置项

var option = {
    // ... 省略其他配置项
    series: [
        {
            name: '多层级展示',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京',value: Math.round(Math.random()*1000)},
                {name: '上海',value: Math.round(Math.random()*1000)},
                // ... 其他省份数据
            ]
        },
        {
            name: '多层级展示',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京市',value: Math.round(Math.random()*1000)},
                {name: '上海市',value: Math.round(Math.random()*1000)},
                // ... 其他城市数据
            ]
        }
    ]
};

// ... 省略使用配置项显示图表

实战案例九:地图数据动态更新

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

// ... 省略初始化echarts实例和配置项

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

// ... 省略使用配置项显示图表

实战案例十:地图数据筛选

ECharts地图图表支持数据筛选功能,以下是一个实现地图数据筛选的示例:

// ... 省略初始化echarts实例和配置项

// 模拟数据筛选
var data = myChart.getOption().series[0].data;
var filteredData = data.filter(function (item) {
    return item.value > 500;
});
myChart.setOption({
    series: [{
        data: filteredData
    }]
});

// ... 省略使用配置项显示图表

实战案例十一:地图数据聚合

ECharts地图图表支持数据聚合功能,以下是一个实现地图数据聚合的示例:

// ... 省略初始化echarts实例和配置项

var option = {
    // ... 省略其他配置项
    series: [
        {
            name: '数据聚合',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京',value: Math.round(Math.random() * 1000)},
                {name: '上海',value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

// ... 省略使用配置项显示图表

实战案例十二:地图数据排序

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

// ... 省略初始化echarts实例和配置项

var option = {
    // ... 省略其他配置项
    series: [
        {
            name: '数据排序',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京',value: Math.round(Math.random() * 1000)},
                {name: '上海',value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

// ... 省略使用配置项显示图表

实战案例十三:地图数据分组

ECharts地图图表支持数据分组功能,以下是一个实现地图数据分组的示例:

// ... 省略初始化echarts实例和配置项

var option = {
    // ... 省略其他配置项
    series: [
        {
            name: '数据分组',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京',value: Math.round(Math.random() * 1000)},
                {name: '上海',value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

// ... 省略使用配置项显示图表

实战案例十四:地图数据可视化效果

ECharts地图图表支持丰富的数据可视化效果,以下是一个实现地图数据可视化效果的示例:

// ... 省略初始化echarts实例和配置项

var option = {
    // ... 省略其他配置项
    series: [
        {
            name: '数据可视化效果',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京',value: Math.round(Math.random() * 1000)},
                {name: '上海',value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

// ... 省略使用配置项显示图表

实战案例十五:地图数据导出

ECharts地图图表支持数据导出功能,以下是一个实现地图数据导出的示例:

// ... 省略初始化echarts实例和配置项

// 模拟数据导出
myChart.on('click', function (params) {
    if (params.componentType === 'series') {
        var data = myChart.getOption().series[0].data;
        var exportData = data.map(function (item) {
            return [item.name, item.value];
        });
        console.log(exportData);
    }
});

// ... 省略使用配置项显示图表

实战案例十六:地图数据交互

ECharts地图图表支持数据交互功能,以下是一个实现地图数据交互的示例:

// ... 省略初始化echarts实例和配置项

// 模拟数据交互
myChart.on('click', function (params) {
    if (params.componentType === 'series') {
        var data = myChart.getOption().series[0].data;
        var targetData = data.find(function (item) {
            return item.name === params.name;
        });
        console.log(targetData);
    }
});

// ... 省略使用配置项显示图表

实战案例十七:地图数据统计

ECharts地图图表支持数据统计功能,以下是一个实现地图数据统计的示例:

// ... 省略初始化echarts实例和配置项

// 模拟数据统计
var data = myChart.getOption().series[0].data;
var total = data.reduce(function (prev, curr) {
    return prev + curr.value;
}, 0);
console.log('总数据量:', total);

// ... 省略使用配置项显示图表

实战案例十八:地图数据可视化工具

ECharts地图图表支持数据可视化工具,以下是一个实现地图数据可视化工具的示例:

// ... 省略初始化echarts实例和配置项

// 模拟数据可视化工具
var data = myChart.getOption().series[0].data;
var visualizationTool = {
    name: '数据可视化工具',
    data: data.map(function (item) {
        return [item.name, item.value];
    })
};
console.log(visualizationTool);

// ... 省略使用配置项显示图表

实战案例十九:地图数据可视化插件

ECharts地图图表支持数据可视化插件,以下是一个实现地图数据可视化插件的示例:

// ... 省略初始化echarts实例和配置项

// 模拟数据可视化插件
var data = myChart.getOption().series[0].data;
var visualizationPlugin = {
    name: '数据可视化插件',
    data: data.map(function (item) {
        return [item.name, item.value];
    })
};
console.log(visualizationPlugin);

// ... 省略使用配置项显示图表

实战案例二十:地图数据可视化应用

ECharts地图图表支持数据可视化应用,以下是一个实现地图数据可视化应用的示例:

// ... 省略初始化echarts实例和配置项

// 模拟数据可视化应用
var data = myChart.getOption().series[0].data;
var visualizationApplication = {
    name: '数据可视化应用',
    data: data.map(function (item) {
        return [item.name, item.value];
    })
};
console.log(visualizationApplication);

// ... 省略使用配置项显示图表

通过以上20个实战案例,相信你已经对ECharts地图数据可视化有了更深入的了解。在实际应用中,你可以根据自己的需求,灵活运用这些技巧,打造出更加美观、实用的地图图表。

分享到: