轻松学会ECharts地图图表:30个实用案例教你玩转可视化地图设计

2026-11-12 0 阅读

ECharts是一款功能强大的可视化库,它能够帮助开发者轻松创建各种数据可视化图表。其中,地图图表是ECharts的一个特色功能,它能够将地理信息数据以直观、生动的方式呈现出来。本文将为你带来30个实用案例,通过这些案例,你将学会如何玩转ECharts的可视化地图设计。

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

首先,让我们从最简单的中国地图基本展示开始。通过ECharts的地图插件,你可以轻松实现中国地图的展示,并添加一些基本的标注。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '中国地图基本展示'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '中国',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

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

案例二:世界地图展示

接下来,我们来看如何使用ECharts展示世界地图。这需要使用ECharts提供的world地图类型。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '世界地图展示'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '世界',
            type: 'map',
            mapType: 'world',
            label: {
                show: true
            },
            data: [
                {name: '中国', value: Math.round(Math.random() * 1000)},
                // ... 其他国家数据
            ]
        }
    ]
};

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

案例三:自定义地图

ECharts还支持自定义地图,你可以通过mapType属性指定一个自定义地图类型。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '自定义地图'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '自定义地图',
            type: 'map',
            mapType: 'custom',
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                // ... 其他地区数据
            ],
            // 自定义地图的路径
            map: 'path/to/your/custom-map.json'
        }
    ]
};

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

案例四:地图热力图

热力图是一种常见的地图可视化方式,它能够通过颜色深浅来表示数据的密集程度。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图热力图'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '热力图',
            type: 'heatmap',
            coordinateSystem: 'geo',
            data: [
                {name: '北京', value: [116.46, 39.92]},
                // ... 其他地区数据
            ]
        }
    ]
};

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

案例五:地图散点图

散点图是一种将地理信息数据以散点形式展示的地图图表。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图散点图'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '散点图',
            type: 'scatter',
            coordinateSystem: 'geo',
            data: [
                {name: '北京', value: [116.46, 39.92]},
                // ... 其他地区数据
            ]
        }
    ]
};

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

案例六:地图折线图

折线图是一种将地理信息数据以折线形式展示的地图图表。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图折线图'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '折线图',
            type: 'line',
            coordinateSystem: 'geo',
            data: [
                {name: '北京', value: [116.46, 39.92]},
                // ... 其他地区数据
            ]
        }
    ]
};

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

案例七:地图柱状图

柱状图是一种将地理信息数据以柱状形式展示的地图图表。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图柱状图'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '柱状图',
            type: 'bar',
            coordinateSystem: 'geo',
            data: [
                {name: '北京', value: [116.46, 39.92]},
                // ... 其他地区数据
            ]
        }
    ]
};

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

案例八:地图饼图

饼图是一种将地理信息数据以饼状形式展示的地图图表。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图饼图'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '饼图',
            type: 'pie',
            coordinateSystem: 'geo',
            data: [
                {name: '北京', value: [116.46, 39.92]},
                // ... 其他地区数据
            ]
        }
    ]
};

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

案例九:地图雷达图

雷达图是一种将地理信息数据以雷达形式展示的地图图表。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图雷达图'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '雷达图',
            type: 'radar',
            coordinateSystem: 'geo',
            data: [
                {name: '北京', value: [116.46, 39.92]},
                // ... 其他地区数据
            ]
        }
    ]
};

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

案例十:地图地图

地图可以嵌套地图,实现更复杂的地理信息展示。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图嵌套地图'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '嵌套地图',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ],
            // 嵌套地图
            children: [
                {
                    name: '北京市',
                    type: 'map',
                    mapType: 'beijing',
                    label: {
                        show: true
                    },
                    data: [
                        {name: '东城区', value: Math.round(Math.random() * 1000)},
                        // ... 其他区域数据
                    ]
                }
            ]
        }
    ]
};

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

案例十一:地图动画效果

ECharts支持地图动画效果,可以使地图的展示更加生动。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图动画效果'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '动画效果',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ],
            animation: true
        }
    ]
};

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

案例十二:地图交互效果

ECharts支持地图交互效果,例如点击地图区域、悬停显示信息等。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图交互效果'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '交互效果',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ],
            // 交互效果
            emphasis: {
                label: {
                    show: true
                }
            }
        }
    ]
};

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

案例十三:地图自定义颜色

你可以自定义地图的颜色,使地图的展示更加符合你的需求。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图自定义颜色'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '自定义颜色',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ],
            // 自定义颜色
            itemStyle: {
                areaColor: '#ff7f50'
            }
        }
    ]
};

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

案例十四:地图自定义标签

你可以自定义地图的标签,使其更加符合你的需求。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图自定义标签'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '自定义标签',
            type: 'map',
            mapType: 'china',
            label: {
                show: true,
                formatter: '{b}: {c}'
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

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

案例十五:地图自定义地图样式

ECharts支持自定义地图样式,你可以通过mapStyle属性来设置。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图自定义样式'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '自定义样式',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ],
            // 自定义样式
            mapStyle: {
                areas: [
                    {
                        name: '北京',
                        itemStyle: {
                            color: '#ff7f50'
                        }
                    }
                ]
            }
        }
    ]
};

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

案例十六:地图数据聚合

ECharts支持地图数据聚合,可以将多个数据点聚合成一个点。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图数据聚合'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '数据聚合',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ],
            // 数据聚合
            emphasis: {
                label: {
                    show: true
                }
            },
            // 聚合半径
            roam: true,
            zoom: 1.2,
            scaleLimit: {
                min: 1,
                max: 2
            }
        }
    ]
};

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

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

ECharts支持地图缩放与平移,用户可以通过鼠标滚轮或拖动地图来实现。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图缩放与平移'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '缩放与平移',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ],
            // 缩放与平移
            roam: true
        }
    ]
};

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

案例十八:地图多级联动

ECharts支持地图多级联动,可以实现点击一个地区,展开下级地区的功能。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图多级联动'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '多级联动',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ],
            // 多级联动
            expandAndCollapse: true,
            levels: [
                {
                    // 第一级地区
                    name: '北京',
                    label: {
                        show: true
                    }
                },
                {
                    // 第二级地区
                    name: '北京市',
                    label: {
                        show: true
                    }
                }
            ]
        }
    ]
};

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

案例十九:地图数据筛选

ECharts支持地图数据筛选,你可以通过点击地图区域来筛选数据。

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图数据筛选'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '数据筛选',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ],
            // 数据筛选
            select: {
                selectedMode: 'multiple'
            }
        }
    ]
};

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

案例二十:地图数据排序

ECharts支持地图数据排序,你可以通过点击地图区域

分享到: