在数据可视化的世界中,地图图表是一种非常直观和有吸引力的数据展示方式。ECharts作为一款强大的前端图表库,提供了丰富的地图图表功能,能够帮助开发者轻松地制作出美观、交互性强的地图数据可视化效果。本文将带你通过50个实用案例,轻松上手ECharts地图图表,助力你的数据可视化技能提升。

1. 地图图表基础

在开始案例学习之前,我们先来了解一些ECharts地图图表的基础知识。

1.1 地图类型

ECharts支持多种地图类型,包括中国地图、世界地图、行政区域地图等。

1.2 地图数据格式

ECharts地图数据通常以GeoJSON格式存储,这种格式可以方便地描述地图的形状和区域。

1.3 配置项

ECharts地图图表的配置项丰富,包括地图的缩放、拖拽、视角调整等交互功能,以及地图的样式、颜色、标签等视觉配置。

2. 实用案例教学

以下将通过50个案例,详细介绍如何使用ECharts制作各种地图图表。

2.1 案例一:中国地图基础展示

代码示例:

// 引入ECharts主模块和地图模块
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    series: [{
        type: 'map',
        map: 'china'
    }]
};

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

2.2 案例二:世界地图展示

代码示例:

// 引入ECharts主模块和地图模块
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    series: [{
        type: 'map',
        map: 'world'
    }]
};

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

2.3 案例三:自定义地图数据

代码示例:

// 引入ECharts主模块和地图模块
var myChart = echarts.init(document.getElementById('main'));

// 自定义地图数据
var geoCoordMap = {
    '新津': [103.818, 30.029],
    '成都': [104.06, 30.67],
    // ...其他城市数据
};

// 指定图表的配置项和数据
var option = {
    series: [{
        type: 'map',
        map: '四川',
        label: {
            show: true
        },
        data: [
            {name: '新津', value: 90},
            {name: '成都', value: 100},
            // ...其他城市数据
        ],
        geoCoord: geoCoordMap
    }]
};

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

2.4 案例四:地图数据可视化

代码示例:

// 引入ECharts主模块和地图模块
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    series: [{
        type: 'map',
        map: '四川',
        label: {
            show: true
        },
        data: [
            {name: '新津', value: 90},
            {name: '成都', value: 100},
            // ...其他城市数据
        ]
    }]
};

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

2.5 案例五:地图热力图

代码示例:

// 引入ECharts主模块和地图模块
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    series: [{
        type: 'heatmap',
        coordinateSystem: 'geo',
        data: [
            // ...经纬度和数值数据
        ],
        geoCoord: geoCoordMap
    }]
};

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

2.6 案例六:地图动画效果

代码示例:

// 引入ECharts主模块和地图模块
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    series: [{
        type: 'map',
        map: '四川',
        animation: true,
        data: [
            // ...城市数据
        ]
    }]
};

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

2.7 案例七:地图区域高亮

代码示例:

// 引入ECharts主模块和地图模块
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    series: [{
        type: 'map',
        map: '四川',
        label: {
            show: true
        },
        emphasis: {
            itemStyle: {
                areaColor: '#f4e925'
            }
        },
        data: [
            // ...城市数据
        ]
    }]
};

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

2.8 案例九:地图区域渐变效果

代码示例:

// 引入ECharts主模块和地图模块
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    series: [{
        type: 'map',
        map: '四川',
        label: {
            show: true
        },
        itemStyle: {
            areaColor: {
                type: 'linear',
                x: 0,
                y: 0,
                x2: 0,
                y2: 1,
                colorStops: [{
                    offset: 0, color: '#ff7f50' // 0% 处的颜色
                }, {
                    offset: 1, color: '#87cefa' // 100% 处的颜色
                }],
                globalCoord: false // 缺省为 false
            }
        },
        data: [
            // ...城市数据
        ]
    }]
};

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

2.10 案例十一:地图区域阴影效果

代码示例:

// 引入ECharts主模块和地图模块
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    series: [{
        type: 'map',
        map: '四川',
        label: {
            show: true
        },
        itemStyle: {
            shadowBlur: 10,
            shadowColor: 'rgba(120, 36, 50, 0.5)',
            shadowOffsetY: 5
        },
        data: [
            // ...城市数据
        ]
    }]
};

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

2.12 案例十三:地图区域渐变阴影效果

代码示例:

// 引入ECharts主模块和地图模块
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    series: [{
        type: 'map',
        map: '四川',
        label: {
            show: true
        },
        itemStyle: {
            areaColor: {
                type: 'linear',
                x: 0,
                y: 0,
                x2: 0,
                y2: 1,
                colorStops: [{
                    offset: 0, color: '#ff7f50' // 0% 处的颜色
                }, {
                    offset: 1, color: '#87cefa' // 100% 处的颜色
                }],
                globalCoord: false // 缺省为 false
            },
            shadowBlur: 10,
            shadowColor: 'rgba(120, 36, 50, 0.5)',
            shadowOffsetY: 5
        },
        data: [
            // ...城市数据
        ]
    }]
};

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

2.14 案例十五:地图区域标签效果

代码示例:

// 引入ECharts主模块和地图模块
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    series: [{
        type: 'map',
        map: '四川',
        label: {
            show: true,
            position: 'top'
        },
        itemStyle: {
            areaColor: {
                type: 'linear',
                x: 0,
                y: 0,
                x2: 0,
                y2: 1,
                colorStops: [{
                    offset: 0, color: '#ff7f50' // 0% 处的颜色
                }, {
                    offset: 1, color: '#87cefa' // 100% 处的颜色
                }],
                globalCoord: false // 缺省为 false
            },
            shadowBlur: 10,
            shadowColor: 'rgba(120, 36, 50, 0.5)',
            shadowOffsetY: 5
        },
        data: [
            // ...城市数据
        ]
    }]
};

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

2.16 案例十七:地图区域标签动画效果

代码示例:

// 引入ECharts主模块和地图模块
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    series: [{
        type: 'map',
        map: '四川',
        label: {
            show: true,
            position: 'top',
            animation: true
        },
        itemStyle: {
            areaColor: {
                type: 'linear',
                x: 0,
                y: 0,
                x2: 0,
                y2: 1,
                colorStops: [{
                    offset: 0, color: '#ff7f50' // 0% 处的颜色
                }, {
                    offset: 1, color: '#87cefa' // 100% 处的颜色
                }],
                globalCoord: false // 缺省为 false
            },
            shadowBlur: 10,
            shadowColor: 'rgba(120, 36, 50, 0.5)',
            shadowOffsetY: 5
        },
        data: [
            // ...城市数据
        ]
    }]
};

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

2.18 案例十九:地图区域标签阴影效果

代码示例:

// 引入ECharts主模块和地图模块
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    series: [{
        type: 'map',
        map: '四川',
        label: {
            show: true,
            position: 'top',
            shadowBlur: 10,
            shadowColor: 'rgba(120, 36, 50, 0.5)',
            shadowOffsetY: 5
        },
        itemStyle: {
            areaColor: {
                type: 'linear',
                x: 0,
                y: 0,
                x2: 0,
                y2: 1,
                colorStops: [{
                    offset: 0, color: '#ff7f50' // 0% 处的颜色
                }, {
                    offset: 1, color: '#87cefa' // 100% 处的颜色
                }],
                globalCoord: false // 缺省为 false
            },
            shadowBlur: 10,
            shadowColor: 'rgba(120, 36, 50, 0.5)',
            shadowOffsetY: 5
        },
        data: [
            // ...城市数据
        ]
    }]
};

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

2.20 案例二十一:地图区域标签渐变阴影效果

代码示例:

// 引入ECharts主模块和地图模块
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    series: [{
        type: 'map',
        map: '四川',
        label: {
            show: true,
            position: 'top',
            shadowBlur: 10,
            shadowColor: 'rgba(120, 36, 50, 0.5)',
            shadowOffsetY: 5
        },
        itemStyle: {
            areaColor: {
                type: 'linear',
                x: 0,
                y: 0,
                x2: 0,
                y2: 1,
                colorStops: [{
                    offset: 0, color: '#ff7f50' // 0% 处的颜色
                }, {
                    offset: 1, color: '#87cefa' // 100% 处的颜色
                }],
                globalCoord: false // 缺省为 false
            },
            shadowBlur: 10,
            shadowColor: 'rgba(120, 36, 50, 0.5)',
            shadowOffsetY: 5
        },
        data: [
            // ...城市数据
        ]
    }]
};

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

2.22 案例二十三:地图区域标签动画渐变阴影效果

代码示例:

// 引入ECharts主模块和地图模块
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    series: [{
        type: 'map',
        map: '四川',
        label: {
            show: true,
            position: 'top',
            animation: true,
            shadowBlur: 10,
            shadowColor: 'rgba(120, 36, 50, 0.5)',
            shadowOffsetY: 5
        },
        itemStyle: {
            areaColor: {
                type: 'linear',
                x: 0,
                y: 0,
                x2: 0,
                y2: 1,
                colorStops: [{
                    offset: 0, color: '#ff7f50' // 0% 处的颜色
                }, {
                    offset: 1, color: '#87cefa' // 100% 处的颜色
                }],
                globalCoord: false // 缺省为 false
            },
            shadowBlur: 10,
            shadowColor: 'rgba(120, 36, 50, 0.5)',
            shadowOffsetY: 5
        },
        data: [
            // ...城市数据
        ]
    }]
};

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

2.24 案例二十五:地图区域标签阴影动画效果

代码示例:

// 引入ECharts主模块和地图模块
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    series: [{
        type: 'map',
        map: '四川',
        label: {
            show: true,
            position: 'top',
            shadowBlur: 10,
            shadowColor: 'rgba(120, 36, 50, 0.5)',
            shadowOffsetY: 5,
            animation: true
        },
        itemStyle: {
            areaColor: {
                type: 'linear',
                x: 0,
                y: 0,
                x2: 0,
                y2: 1,
                colorStops: [{
                    offset: 0, color: '#ff7f50' // 0% 处的颜色
                }, {
                    offset: 1, color: '#87cefa' // 100% 处的颜色
                }],
                globalCoord: false // 缺省为 false
            },
            shadowBlur: 10,
            shadowColor: 'rgba(120, 36, 50, 0.5)',
            shadowOffsetY: 5
        },
        data: [
            // ...城市数据
        ]
    }]
};

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

2.26 案例二十七:地图区域标签阴影动画渐变效果

代码示例:

// 引入ECharts主模块和地图模块
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    series: [{
        type: 'map',
        map: '四川',
        label: {
            show: true,
            position: 'top',
            shadowBlur: 10,
            shadowColor: 'rgba(120, 36, 50, 0.5)',
            shadowOffsetY: 5,
            animation: true,
            colorStops: [{
                offset: 0, color: '#ff7f50' // 0% 处的颜色
            }, {
                offset: 1, color: '#87cefa' // 100% 处的颜色
            }]
        },
        itemStyle: {
            areaColor: {
                type: 'linear',
                x: 0,
                y: 0,
                x2: 0,
                y2: 1,
                colorStops: [{
                    offset: 0, color: '#ff7f50' // 0% 处的颜色
                }, {
                    offset: 1, color: '#87cefa' // 100% 处的颜色
                }],
                globalCoord: false // 缺省为 false
            },
            shadowBlur: 10,
            shadowColor: 'rgba(120, 36, 50, 0.5)',
            shadowOffsetY: 5
        },
        data: [
            // ...城市数据
        ]
    }]
};

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

2.28 案例二十九:地图区域标签阴影动画渐变效果

代码示例:

”`javascript // 引入ECharts主模块和地图模块 var myChart =