轻松上手ECharts地图图表:30个实用案例教你绘制个性化地图

2026-09-09 0 阅读

ECharts地图图表是数据可视化领域的一个重要工具,它可以帮助我们轻松地将地理信息数据以直观、美观的方式呈现出来。本篇文章将为你带来30个实用案例,通过这些案例,你将学会如何使用ECharts地图图表绘制个性化地图。

案例一:中国地图

1.1 案例描述

绘制一个高亮显示中国地图的图表,并展示每个省份的名称和简称。

1.2 代码示例

// 基于准备好的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);

案例二:世界地图

2.1 案例描述

绘制一个世界地图,并展示每个国家的名称和首字母。

2.2 代码示例

// 基于准备好的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);

案例三:自定义地图

3.1 案例描述

根据自定义的地图数据绘制地图,例如绘制一个自定义的行政区域地图。

3.2 代码示例

// 基于准备好的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: '区域1', value: Math.round(Math.random() * 1000)},
                // ... 其他区域数据
            ],
            // 自定义地图数据
            regions: [
                {
                    name: '区域1',
                    itemStyle: {
                        normal: {
                            areaColor: '#FF6347'
                        }
                    }
                },
                // ... 其他区域样式
            ]
        }
    ]
};

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

案例四:地图热力图

4.1 案例描述

在地图上绘制热力图,展示不同地区的数值大小。

4.2 代码示例

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图热力图'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '热力图',
            type: 'heatmap',
            coordinateSystem: 'geo',
            data: [
                {name: '区域1', value: [116.3913, 39.9132, Math.round(Math.random() * 1000)]},
                // ... 其他区域数据
            ]
        }
    ]
};

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

案例五:地图动画

5.1 案例描述

在地图上添加动画效果,展示数据的变化过程。

5.2 代码示例

// 基于准备好的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);

案例六:地图缩放与平移

6.1 案例描述

实现地图的缩放和平移功能,方便用户查看不同地区的细节。

6.2 代码示例

// 基于准备好的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
            },
            zoom: 1.2,
            roam: true
        }
    ]
};

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

案例七:地图点击事件

7.1 案例描述

实现地图点击事件,当用户点击某个地区时,显示该地区的详细信息。

7.2 代码示例

// 基于准备好的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)}
            ],
            click: function (params) {
                console.log(params.name + ':' + params.value);
            }
        }
    ]
};

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

案例八:地图联动

8.1 案例描述

实现地图联动效果,当用户在地图上选择一个地区时,另一个地图也会显示相应的信息。

8.2 代码示例

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

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

var option2 = {
    title: {
        text: '地图联动2'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '联动2',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)}
            ]
        }
    ]
};

// 使用刚指定的配置项和数据显示图表。
myChart1.setOption(option1);
myChart2.setOption(option2);

// 实现联动效果
myChart1.on('click', function (params) {
    myChart2.setOption(option2);
});

案例九:地图与折线图结合

9.1 案例描述

将地图与折线图结合,展示不同地区的数值变化趋势。

9.2 代码示例

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

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

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

案例十:地图与柱状图结合

10.1 案例描述

将地图与柱状图结合,展示不同地区的数值大小。

10.2 代码示例

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

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

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

案例十一:地图与饼图结合

11.1 案例描述

将地图与饼图结合,展示不同地区的占比情况。

11.2 代码示例

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图与饼图结合'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '饼图',
            type: 'pie',
            radius: ['50%', '70%'],
            avoidLabelOverlap: false,
            label: {
                show: false,
                position: 'center'
            },
            emphasis: {
                label: {
                    show: true,
                    fontSize: '30',
                    fontWeight: 'bold'
                }
            },
            labelLine: {
                show: false
            },
            data: [
                {value: Math.round(Math.random() * 1000), name: '北京'},
                // ... 其他地区数据
            ]
        },
        {
            name: '地图',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)}
            ]
        }
    ]
};

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

案例十二:地图与散点图结合

12.1 案例描述

将地图与散点图结合,展示不同地区的数值分布情况。

12.2 代码示例

// 基于准备好的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.3913, 39.9132, Math.round(Math.random() * 1000)]},
                // ... 其他地区数据
            ]
        },
        {
            name: '地图',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)}
            ]
        }
    ]
};

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

案例十三:地图与雷达图结合

13.1 案例描述

将地图与雷达图结合,展示不同地区的综合评分情况。

13.2 代码示例

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

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

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

案例十四:地图与漏斗图结合

14.1 案例描述

将地图与漏斗图结合,展示不同地区的流量转化情况。

14.2 代码示例

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

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

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

案例十五:地图与词云图结合

15.1 案例描述

将地图与词云图结合,展示不同地区的热门词汇。

15.2 代码示例

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

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

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

案例十六:地图与折线图、柱状图、饼图、散点图、雷达图、漏斗图、词云图结合

16.1 案例描述

将地图与其他多种图表结合,展示多维度、多角度的数据分析结果。

16.2 代码示例

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图与其他图表结合'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        // ... 其他图表数据
    ],
    // ... 地图数据
};

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

案例十七:地图与地图结合

17.1 案

分享到: