新手必看!轻松掌握echarts地图图表制作技巧,20个实用案例解析

2026-09-12 0 阅读

在数据可视化领域,ECharts 是一款非常流行的 JavaScript 库,它可以帮助开发者轻松制作出各种丰富的图表。其中,地图图表因其直观性和信息量丰富,受到了许多开发者的喜爱。对于新手来说,掌握 ECharts 地图图表的制作技巧可能有些挑战,但不用担心,本文将为你带来 20 个实用案例解析,帮助你轻松入门!

1. 地图基础配置

首先,我们需要了解 ECharts 地图的基本配置。这里以中国地图为例,展示如何创建一个简单的地图图表。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '中国地图示例'
    },
    tooltip: {},
    legend: {
        orient: 'vertical',
        left: 'left',
        data:['北京', '上海', '广州', '深圳']
    },
    visualMap: {
        min: 0,
        max: 100,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],           // 文本,默认为数值文本
        calculable: true
    },
    series: [
        {
            name: '销量',
            type: 'map',
            mapType: 'china',
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            data:[
                {name: '北京',value: Math.round(Math.random()*1000) },
                {name: '上海',value: Math.round(Math.random()*1000) },
                {name: '广州',value: Math.round(Math.random()*1000) },
                {name: '深圳',value: Math.round(Math.random()*1000) },
                {name: '天津',value: Math.round(Math.random()*1000) },
                {name: '苏州',value: Math.round(Math.random()*1000) },
                {name: '重庆',value: Math.round(Math.random()*1000) },
                {name: '杭州',value: Math.round(Math.random()*1000) },
                {name: '武汉',value: Math.round(Math.random()*1000) },
                {name: '成都',value: Math.round(Math.random()*1000) },
                {name: '南京',value: Math.round(Math.random()*1000) },
                {name: '西安',value: Math.round(Math.random()*1000) },
                {name: '长沙',value: Math.round(Math.random()*1000) },
                {name: '青岛',value: Math.round(Math.random()*1000) },
                {name: '郑州',value: Math.round(Math.random()*1000) },
                {name: '大连',value: Math.round(Math.random()*1000) },
                {name: '东莞',value: Math.round(Math.random()*1000) },
                {name: '沈阳',value: Math.round(Math.random()*1000) },
                {name: '福州',value: Math.round(Math.random()*1000) },
                {name: '厦门',value: Math.round(Math.random()*1000) },
                {name: '南昌',value: Math.round(Math.random()*1000) },
                {name: '昆明',value: Math.round(Math.random()*1000) }
            ]
        }
    ]
};

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

2. 地图样式自定义

ECharts 提供了丰富的地图样式自定义功能,包括颜色、标签、边框等。以下是一个示例,展示如何自定义地图样式。

series: [
    {
        name: '销量',
        type: 'map',
        mapType: 'china',
        label: {
            normal: {
                show: true,
                textStyle: {
                    color: '#fff'
                }
            },
            emphasis: {
                show: true,
                textStyle: {
                    color: '#fff'
                }
            }
        },
        itemStyle: {
            normal: {
                borderColor: '#00aaff',
                borderWidth: 1,
                areaColor: '#00aaff'
            },
            emphasis: {
                borderColor: '#00aaff',
                borderWidth: 1,
                areaColor: '#00aaff'
            }
        },
        data:[
            // ...
        ]
    }
]

3. 动态数据更新

在实际应用中,地图数据可能需要动态更新。以下是一个示例,展示如何使用 setOption 方法动态更新地图数据。

// 获取地图实例
var myChart = echarts.init(document.getElementById('main'));

// 初始化地图数据
var option = {
    // ...
    series: [
        {
            // ...
            data: [
                // ...
            ]
        }
    ]
};

// 使用初始化数据设置图表
myChart.setOption(option);

// 动态更新数据
function updateData() {
    var newData = [
        // ...
    ];
    myChart.setOption({
        series: [{
            data: newData
        }]
    });
}

// 定时更新数据
setInterval(updateData, 5000);

4. 地图交互

ECharts 地图支持丰富的交互功能,如点击事件、鼠标悬停事件等。以下是一个示例,展示如何监听地图点击事件。

myChart.on('click', function (params) {
    console.log(params.name); // 输出点击的城市名称
    console.log(params.value); // 输出点击的城市数据
});

5. 地图缩放与平移

ECharts 地图支持缩放和平移操作。以下是一个示例,展示如何实现地图缩放和平移。

myChart.on('zoom', function (params) {
    console.log(params);
});

myChart.on('pan', function (params) {
    console.log(params);
});

6. 热力图

ECharts 地图支持热力图效果,可以直观地展示数据密集的区域。以下是一个示例,展示如何使用热力图。

series: [
    {
        name: '热力图',
        type: 'heatmap',
        coordinateSystem: 'geo',
        data: [
            // ...
        ]
    }
]

7. 地图投影

ECharts 地图支持多种投影方式,如墨卡托投影、高斯-克吕格投影等。以下是一个示例,展示如何使用墨卡托投影。

series: [
    {
        name: '墨卡托投影',
        type: 'map',
        mapType: 'custom',
        coordinateSystem: 'geo',
        // ...
        geoIndex: 0,
        data: [
            // ...
        ]
    }
]

8. 地图组合

ECharts 支持地图与其他图表的组合,如柱状图、折线图等。以下是一个示例,展示如何将地图与柱状图组合。

series: [
    {
        name: '销量',
        type: 'map',
        mapType: 'china',
        // ...
    },
    {
        name: '柱状图',
        type: 'bar',
        // ...
    }
]

9. 地图动画

ECharts 地图支持丰富的动画效果,如渐变、飞入等。以下是一个示例,展示如何实现地图渐变动画。

animation: true,
animationDuration: 1000,
animationEasing: 'cubicInOut',

10. 地图事件

ECharts 地图支持多种事件,如点击、鼠标悬停等。以下是一个示例,展示如何监听地图事件。

myChart.on('click', function (params) {
    console.log(params.name); // 输出点击的城市名称
    console.log(params.value); // 输出点击的城市数据
});

11. 地图自定义

ECharts 地图支持自定义功能,如自定义地图样式、自定义数据等。以下是一个示例,展示如何自定义地图样式。

series: [
    {
        name: '销量',
        type: 'map',
        mapType: 'china',
        // ...
        itemStyle: {
            normal: {
                borderColor: '#00aaff',
                borderWidth: 1,
                areaColor: '#00aaff'
            },
            emphasis: {
                borderColor: '#00aaff',
                borderWidth: 1,
                areaColor: '#00aaff'
            }
        },
        // ...
    }
]

12. 地图插件

ECharts 地图支持插件功能,如百度地图、高德地图等。以下是一个示例,展示如何使用百度地图插件。

var bmap = echarts.registerMap('china', require('path/to/bmap.json'));

series: [
    {
        name: '销量',
        type: 'map',
        mapType: 'china',
        // ...
        data: [
            // ...
        ]
    }
]

13. 地图缩放与平移

ECharts 地图支持缩放和平移操作。以下是一个示例,展示如何实现地图缩放和平移。

myChart.on('zoom', function (params) {
    console.log(params);
});

myChart.on('pan', function (params) {
    console.log(params);
});

14. 地图热力图

ECharts 地图支持热力图效果,可以直观地展示数据密集的区域。以下是一个示例,展示如何使用热力图。

series: [
    {
        name: '热力图',
        type: 'heatmap',
        coordinateSystem: 'geo',
        data: [
            // ...
        ]
    }
]

15. 地图投影

ECharts 地图支持多种投影方式,如墨卡托投影、高斯-克吕格投影等。以下是一个示例,展示如何使用墨卡托投影。

series: [
    {
        name: '墨卡托投影',
        type: 'map',
        mapType: 'custom',
        coordinateSystem: 'geo',
        // ...
        geoIndex: 0,
        data: [
            // ...
        ]
    }
]

16. 地图组合

ECharts 支持地图与其他图表的组合,如柱状图、折线图等。以下是一个示例,展示如何将地图与柱状图组合。

series: [
    {
        name: '销量',
        type: 'map',
        mapType: 'china',
        // ...
    },
    {
        name: '柱状图',
        type: 'bar',
        // ...
    }
]

17. 地图动画

ECharts 地图支持丰富的动画效果,如渐变、飞入等。以下是一个示例,展示如何实现地图渐变动画。

animation: true,
animationDuration: 1000,
animationEasing: 'cubicInOut',

18. 地图事件

ECharts 地图支持多种事件,如点击、鼠标悬停等。以下是一个示例,展示如何监听地图事件。

myChart.on('click', function (params) {
    console.log(params.name); // 输出点击的城市名称
    console.log(params.value); // 输出点击的城市数据
});

19. 地图自定义

ECharts 地图支持自定义功能,如自定义地图样式、自定义数据等。以下是一个示例,展示如何自定义地图样式。

series: [
    {
        name: '销量',
        type: 'map',
        mapType: 'china',
        // ...
        itemStyle: {
            normal: {
                borderColor: '#00aaff',
                borderWidth: 1,
                areaColor: '#00aaff'
            },
            emphasis: {
                borderColor: '#00aaff',
                borderWidth: 1,
                areaColor: '#00aaff'
            }
        },
        // ...
    }
]

20. 地图插件

ECharts 地图支持插件功能,如百度地图、高德地图等。以下是一个示例,展示如何使用百度地图插件。

var bmap = echarts.registerMap('china', require('path/to/bmap.json'));

series: [
    {
        name: '销量',
        type: 'map',
        mapType: 'china',
        // ...
        data: [
            // ...
        ]
    }
]

通过以上 20 个实用案例解析,相信你已经对 ECharts 地图图表的制作技巧有了更深入的了解。在实际开发中,你可以根据自己的需求进行灵活运用,制作出更加美观、实用的地图图表。祝你在数据可视化领域取得更好的成绩!

分享到: