新手必学:轻松掌握ECharts地图图表,10个实用案例带你快速上手

2026-08-13 0 阅读

在数据可视化领域,地图图表因其直观性和易于理解的特点,成为展示地理分布数据的重要工具。ECharts作为一个功能强大的可视化库,提供了丰富的地图图表功能。对于新手来说,掌握ECharts地图图表的制作并不难,以下将通过10个实用案例,带你轻松上手。

案例1:中国地图基本展示

首先,让我们从最简单的中国地图基本展示开始。通过ECharts的echarts.init()方法初始化图表,并设置地图的基本配置。

var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china'
    }]
};

myChart.setOption(option);

案例2:自定义省份颜色

在实际应用中,我们经常需要根据数据为不同省份设置不同的颜色。以下代码展示了如何实现这一点。

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        itemStyle: {
            normal: {
                label: {
                    show: true
                },
                areaColor: '#f1f1f1'
            },
            emphasis: {
                label: {
                    show: true
                },
                areaColor: '#e1e1e1'
            }
        },
        data: [{
            name: '北京',
            itemStyle: {
                areaColor: '#ff0000'
            }
        }]
    }]
};

案例3:世界地图展示

除了中国地图,ECharts还支持世界地图的展示。以下代码演示了如何使用世界地图。

var option = {
    series: [{
        type: 'map',
        mapType: 'world'
    }]
};

案例4:散点图叠加地图

在地图上叠加散点图可以展示不同地区的具体数据。以下是一个示例:

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        data: [
            {name: '北京', value: Math.round(Math.random() * 1000)},
            {name: '上海', value: Math.round(Math.random() * 1000)}
        ]
    }]
};

案例5:热力图

热力图可以直观地展示某个地区的密集程度。以下是如何在地图上添加热力图:

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        visualMap: {
            min: 0,
            max: 1000,
            left: 'left',
            top: 'bottom',
            text: ['高','低'],           // 文本,默认为数值文本
            calculable: true
        },
        data: [
            {name: '北京', value: Math.round(Math.random() * 1000)},
            {name: '上海', value: Math.round(Math.random() * 1000)}
        ]
    }]
};

案例6:数据范围折线图

在地图上展示数据范围折线图,可以更清晰地展示数据的趋势。

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        data: [
            {name: '北京', value: [100, 200, 300]},
            {name: '上海', value: [150, 250, 350]}
        ]
    }]
};

案例7:自定义地图样式

ECharts允许你自定义地图样式,以下是一个使用自定义样式的示例:

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        itemStyle: {
            areaColor: '#fff',
            borderColor: '#0066cc'
        },
        data: [
            {name: '北京', label: {show: true}}
        ]
    }]
};

案例8:多维度数据展示

在实际应用中,我们可能需要展示多个维度的数据。以下是如何在地图上展示多个维度数据的一个例子:

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        itemStyle: {
            areaColor: '#fff',
            borderColor: '#0066cc'
        },
        data: [
            {name: '北京', value: [100, 200, 300]},
            {name: '上海', value: [150, 250, 350]}
        ]
    }]
};

案例9:交互式地图

ECharts支持地图的交互功能,如点击、悬停等。以下是如何实现交互式地图的一个示例:

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        itemStyle: {
            areaColor: '#fff',
            borderColor: '#0066cc'
        },
        data: [
            {name: '北京', label: {show: true}}
        ]
    }]
};

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

案例10:动态更新数据

在实际应用中,我们可能需要动态更新地图上的数据。以下是如何实现动态更新数据的一个示例:

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        itemStyle: {
            areaColor: '#fff',
            borderColor: '#0066cc'
        },
        data: [
            {name: '北京', label: {show: true}}
        ]
    }]
};

function updateData() {
    var newData = [
        {name: '北京', value: [Math.round(Math.random() * 1000), Math.round(Math.random() * 1000)]},
        {name: '上海', value: [Math.round(Math.random() * 1000), Math.round(Math.random() * 1000)]}
    ];

    myChart.setOption({
        series: [{
            data: newData
        }]
    });
}

setInterval(updateData, 2000);

通过以上10个案例,相信你已经对ECharts地图图表有了基本的了解。在实际应用中,你可以根据自己的需求进行扩展和优化。祝你在数据可视化领域取得更大的成就!

分享到: