新手必看!轻松掌握echarts地图图表制作,30个实用案例教你玩转数据可视化

2026-08-02 0 阅读

在当今数据驱动的时代,数据可视化已成为展示数据、传递信息的重要手段。ECharts 是一个使用 JavaScript 实现的开源可视化库,它支持多种图表类型,其中地图图表因其独特的地理空间表现力而备受关注。对于新手来说,掌握 ECharts 地图图表制作并非难事。下面,我将通过30个实用案例,带你轻松玩转数据可视化。

案例一:中国省市区地图

首先,让我们从最基本的地图类型——中国省市区地图开始。通过 ECharts,你可以轻松地绘制出中国地图,并标注出各个省份和城市的位置。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '中国省市区地图'
    },
    tooltip: {
        trigger: 'item'
    },
    // ...
    series: [
        {
            name: '中国',
            type: 'map',
            mapType: 'china',
            // ...
        }
    ]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

案例二:世界地图

世界地图是 ECharts 地图图表的另一个常用类型。它可以帮助你展示全球范围内的数据分布。

// ...
var option = {
    // ...
    series: [
        {
            name: '世界',
            type: 'map',
            mapType: 'world',
            // ...
        }
    ]
};
// ...

案例三:行政区划数据可视化

行政区划数据可视化是地图图表中的一种,它通过不同颜色或形状来表示不同区域的数据。

// ...
var option = {
    // ...
    series: [
        {
            name: '行政区划',
            type: 'map',
            mapType: 'china',
            // ...
            data: [
                {name: '北京', value: 100},
                {name: '上海', value: 200},
                // ...
            ]
        }
    ]
};
// ...

案例四:实时地图数据更新

在实际应用中,你可能需要实时更新地图数据。ECharts 支持通过定时器或事件监听来实现数据的实时更新。

// ...
function updateData() {
    // 获取最新数据
    var newData = getLatestData();
    // 更新地图数据
    myChart.setOption({
        series: [{
            data: newData
        }]
    });
}

// 设置定时器,每5秒更新一次数据
setInterval(updateData, 5000);
// ...

案例五:热力图地图

热力图地图可以直观地展示数据密集区域,常用于表示人口密度、气象数据等。

// ...
var option = {
    // ...
    series: [
        {
            name: '热力图',
            type: 'map',
            mapType: 'china',
            // ...
            data: [
                {name: '北京', value: 100},
                {name: '上海', value: 200},
                // ...
            ]
        }
    ]
};
// ...

案例六:路径图地图

路径图地图可以展示从一个地点到另一个地点的路径,常用于物流、旅行等领域。

// ...
var option = {
    // ...
    series: [
        {
            name: '路径图',
            type: 'map',
            mapType: 'china',
            // ...
            data: [
                {name: '北京', value: 100},
                {name: '上海', value: 200},
                // ...
            ]
        }
    ]
};
// ...

案例七:地图动画效果

ECharts 地图图表支持丰富的动画效果,可以让地图的展示更加生动。

// ...
var option = {
    // ...
    series: [
        {
            name: '动画效果',
            type: 'map',
            mapType: 'china',
            // ...
            animation: true
        }
    ]
};
// ...

案例八:地图交互

地图交互可以让用户与地图进行交互,例如点击地图上的某个区域查看详细信息。

// ...
myChart.on('click', function (params) {
    // 处理点击事件
    console.log(params.name); // 输出点击区域的名称
});
// ...

案例九:地图自定义样式

ECharts 地图图表支持自定义样式,包括地图的颜色、字体、边框等。

// ...
var option = {
    // ...
    series: [
        {
            name: '自定义样式',
            type: 'map',
            mapType: 'china',
            // ...
            itemStyle: {
                color: '#ff7f50',
                borderColor: '#000000',
                borderWidth: 1
            }
        }
    ]
};
// ...

案例十:地图数据聚合

地图数据聚合可以将多个数据点合并成一个点,提高地图的显示效率。

// ...
var option = {
    // ...
    series: [
        {
            name: '数据聚合',
            type: 'map',
            mapType: 'china',
            // ...
            data: [
                {name: '北京', value: 100},
                {name: '上海', value: 200},
                // ...
            ]
        }
    ]
};
// ...

案例十一:地图多层级展示

ECharts 地图图表支持多层级展示,可以展示不同区域的详细信息。

// ...
var option = {
    // ...
    series: [
        {
            name: '多层级展示',
            type: 'map',
            mapType: 'china',
            // ...
            levels: [
                { // 第一个层级
                    // ...
                },
                { // 第二个层级
                    // ...
                },
                // ...
            ]
        }
    ]
};
// ...

案例十二:地图标签展示

地图标签展示可以用于突出显示地图上的某个区域或数据点。

// ...
var option = {
    // ...
    series: [
        {
            name: '标签展示',
            type: 'map',
            mapType: 'china',
            // ...
            label: {
                show: true,
                formatter: '{b}:{c}'
            }
        }
    ]
};
// ...

案例十三:地图阴影效果

地图阴影效果可以让地图更加立体,增强视觉效果。

// ...
var option = {
    // ...
    series: [
        {
            name: '阴影效果',
            type: 'map',
            mapType: 'china',
            // ...
            itemStyle: {
                shadowBlur: 10,
                shadowColor: 'rgba(120, 36, 50, 0.5)',
                shadowOffsetY: 5
            }
        }
    ]
};
// ...

案例十四:地图渐变效果

地图渐变效果可以让地图的颜色更加自然,适应不同的场景。

// ...
var option = {
    // ...
    series: [
        {
            name: '渐变效果',
            type: 'map',
            mapType: 'china',
            // ...
            itemStyle: {
                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                    {offset: 0, color: '#f5deb3'},
                    {offset: 1, color: '#f4e9c7'}
                ])
            }
        }
    ]
};
// ...

案例十五:地图区域点击事件

地图区域点击事件可以用于触发某些操作或展示更多信息。

// ...
myChart.on('click', function (params) {
    // 处理点击事件
    console.log(params.name); // 输出点击区域的名称
    // 触发其他操作
    doSomething(params.name);
});
// ...

案例十六:地图数据过滤

地图数据过滤可以用于只展示符合特定条件的区域。

// ...
var filterData = function (data) {
    return data.filter(function (item) {
        return item.value > 100;
    });
};

var option = {
    // ...
    series: [
        {
            name: '数据过滤',
            type: 'map',
            mapType: 'china',
            // ...
            data: filterData(data)
        }
    ]
};
// ...

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

地图缩放和平移可以让用户更好地查看地图上的特定区域。

// ...
var option = {
    // ...
    series: [
        {
            name: '缩放和平移',
            type: 'map',
            mapType: 'china',
            // ...
            zoom: 1.2 // 设置初始缩放比例
        }
    ]
};
// ...

案例十八:地图动画路径

地图动画路径可以让地图沿着指定的路径进行动画展示。

// ...
var option = {
    // ...
    series: [
        {
            name: '动画路径',
            type: 'map',
            mapType: 'china',
            // ...
            animationPath: [
                { // 第一个点
                    x: 0,
                    y: 0
                },
                { // 第二个点
                    x: 100,
                    y: 100
                },
                // ...
            ]
        }
    ]
};
// ...

案例十九:地图点击高亮显示

地图点击高亮显示可以用于突出显示用户当前关注的区域。

// ...
myChart.on('click', function (params) {
    // 处理点击事件
    console.log(params.name); // 输出点击区域的名称
    // 高亮显示点击区域
    highlightArea(params.name);
});
// ...

案例二十:地图区域填充效果

地图区域填充效果可以用于表示不同区域的数据值。

// ...
var option = {
    // ...
    series: [
        {
            name: '区域填充效果',
            type: 'map',
            mapType: 'china',
            // ...
            itemStyle: {
                areaColor: '#f5de
分享到: