新手必看!轻松掌握echarts地图图表制作,10个实用案例详解

2026-10-14 0 阅读

在数据可视化领域,ECharts 是一款非常流行的 JavaScript 库,它可以帮助开发者轻松创建各种图表,包括地图图表。对于新手来说,ECharts 地图图表的制作可能有些复杂,但不用担心,本文将为你提供10个实用案例,帮助你轻松掌握 ECharts 地图图表的制作技巧。

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

1.1 案例描述

本案例将展示如何使用 ECharts 创建一个基本的中国地图图表。

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)},
                {name: '上海', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

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

1.3 案例解析

在这个案例中,我们首先初始化了一个 ECharts 实例,然后定义了一个地图图表的配置项和数据。其中,mapType: 'china' 表示我们使用的是中国地图,data 数组中包含了各个省份的数据。

案例二:世界地图基本展示

2.1 案例描述

本案例将展示如何使用 ECharts 创建一个基本的世界地图图表。

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)},
                {name: '中国', value: Math.round(Math.random() * 1000)},
                // ... 其他国家数据
            ]
        }
    ]
};

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

2.3 案例解析

在这个案例中,我们使用 mapType: 'world' 来创建一个世界地图图表。与案例一类似,我们定义了一个数据数组来表示各个国家的数据。

案例三:中国地图点击事件

3.1 案例描述

本案例将展示如何为 ECharts 地图图表添加点击事件。

3.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)},
                {name: '上海', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ],
            itemStyle: {
                emphasis: {
                    label: {
                        show: true
                    }
                }
            },
            // 添加点击事件
            click: function (params) {
                alert(params.name + ' 的数据为:' + params.value);
            }
        }
    ]
};

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

3.3 案例解析

在这个案例中,我们为 ECharts 地图图表添加了一个点击事件。当用户点击某个省份时,会弹出一个提示框,显示该省份的数据。

案例四:中国地图热力图

4.1 案例描述

本案例将展示如何使用 ECharts 创建一个中国地图热力图。

4.2 代码示例

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '中国地图热力图'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 1000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],           // 文本,默认为数值文本
        calculable: true
    },
    series: [
        {
            name: '中国',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                {name: '上海', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

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

4.3 案例解析

在这个案例中,我们使用 visualMap 组件来创建一个热力图。通过调整 min 和 max 的值,我们可以控制热力图的显示范围。

案例五:世界地图点击事件

5.1 案例描述

本案例将展示如何为 ECharts 世界地图图表添加点击事件。

5.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)},
                {name: '中国', value: Math.round(Math.random() * 1000)},
                // ... 其他国家数据
            ],
            itemStyle: {
                emphasis: {
                    label: {
                        show: true
                    }
                }
            },
            // 添加点击事件
            click: function (params) {
                alert(params.name + ' 的数据为:' + params.value);
            }
        }
    ]
};

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

5.3 案例解析

在这个案例中,我们为 ECharts 世界地图图表添加了一个点击事件。当用户点击某个国家时,会弹出一个提示框,显示该国家的数据。

案例六:中国地图渐变色

6.1 案例描述

本案例将展示如何使用 ECharts 创建一个中国地图渐变色图表。

6.2 代码示例

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '中国地图渐变色'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 1000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],           // 文本,默认为数值文本
        calculable: true,
        inRange: {
            color: ['#313695', '#4575b4', '#74add1', '#b3cde3', '#d1e5f0', '#fff']
        }
    },
    series: [
        {
            name: '中国',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                {name: '上海', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

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

6.3 案例解析

在这个案例中,我们使用 visualMap 组件的 inRange 属性来设置渐变色。通过调整 color 数组中的颜色值,我们可以控制渐变色的显示效果。

案例七:世界地图渐变色

7.1 案例描述

本案例将展示如何使用 ECharts 创建一个世界地图渐变色图表。

7.2 代码示例

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '世界地图渐变色'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 1000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],           // 文本,默认为数值文本
        calculable: true,
        inRange: {
            color: ['#313695', '#4575b4', '#74add1', '#b3cde3', '#d1e5f0', '#fff']
        }
    },
    series: [
        {
            name: '世界',
            type: 'map',
            mapType: 'world',
            label: {
                show: true
            },
            data: [
                {name: '美国', value: Math.round(Math.random() * 1000)},
                {name: '中国', value: Math.round(Math.random() * 1000)},
                // ... 其他国家数据
            ]
        }
    ]
};

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

7.3 案例解析

在这个案例中,我们使用 visualMap 组件的 inRange 属性来设置渐变色。通过调整 color 数组中的颜色值,我们可以控制渐变色的显示效果。

案例八:中国地图自定义地图

8.1 案例描述

本案例将展示如何使用 ECharts 创建一个自定义的中国地图图表。

8.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: '北京', value: Math.round(Math.random() * 1000)},
                {name: '上海', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ],
            // 自定义地图数据
            regions: [
                {
                    name: '北京',
                    itemStyle: {
                        color: '#ff7f50'
                    }
                },
                {
                    name: '上海',
                    itemStyle: {
                        color: '#87cefa'
                    }
                },
                // ... 其他省份自定义样式
            ]
        }
    ]
};

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

8.3 案例解析

在这个案例中,我们使用 mapType: 'custom' 来创建一个自定义的中国地图图表。通过 regions 属性,我们可以为各个省份设置不同的样式。

案例九:世界地图自定义地图

9.1 案例描述

本案例将展示如何使用 ECharts 创建一个自定义的世界地图图表。

9.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: '美国', value: Math.round(Math.random() * 1000)},
                {name: '中国', value: Math.round(Math.random() * 1000)},
                // ... 其他国家数据
            ],
            // 自定义地图数据
            regions: [
                {
                    name: '美国',
                    itemStyle: {
                        color: '#ff7f50'
                    }
                },
                {
                    name: '中国',
                    itemStyle: {
                        color: '#87cefa'
                    }
                },
                // ... 其他国家自定义样式
            ]
        }
    ]
};

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

9.3 案例解析

在这个案例中,我们使用 mapType: 'custom' 来创建一个自定义的世界地图图表。通过 regions 属性,我们可以为各个国家设置不同的样式。

案例十:中国地图动画效果

10.1 案例描述

本案例将展示如何使用 ECharts 为中国地图图表添加动画效果。

10.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)},
                {name: '上海', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ],
            // 添加动画效果
            animation: true,
            animationDuration: 1000,
            animationEasing: 'cubicInOut'
        }
    ]
};

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

10.3 案例解析

在这个案例中,我们通过设置 animation、animationDuration 和 animationEasing 属性来为 ECharts 地图图表添加动画效果。

通过以上10个实用案例,相信你已经对 ECharts 地图图表的制作有了初步的了解。在实际应用中,你可以根据自己的需求对案例进行修改和扩展,创造出更多有趣的地图图表。祝你学习愉快!

分享到: