新手必看!轻松掌握echarts地图图表制作:30个实战案例解析

2026-10-24 0 阅读

ECharts 是一款功能强大的 JavaScript 库,它可以帮助用户轻松创建各种交互式的图表。在众多图表类型中,地图图表因其直观性和实用性而受到广泛关注。对于新手来说,学习 ECharts 地图图表制作可能有些挑战,但别担心,本文将为您详细介绍 30 个实战案例,帮助您轻松掌握 ECharts 地图图表制作技巧。

1. 简单中国地图

首先,我们从最简单的中国地图开始。通过配置地图数据、系列类型和视觉映射,您可以快速制作出一个漂亮的中国地图。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

2. 热力地图

接下来,我们通过添加热力图效果,使地图更加生动。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

3. 世界地图

ECharts 支持多种地图类型,包括世界地图。下面是一个简单的世界地图示例。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'world',
        label: {
            show: true
        },
        data: [{
            name: 'China',
            value: 100
        }, {
            name: 'Japan',
            value: 200
        }]
    }]
};

myChart.setOption(option);

4. 地图缩放与平移

ECharts 地图支持缩放和平移功能,使您能够更灵活地查看地图。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

// 地图缩放与平移
myChart.dispatchAction({
    type: 'dataZoom',
    start: 0,
    end: 100
});

5. 地图自定义样式

您可以通过自定义样式来提升地图的视觉效果。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        itemStyle: {
            areaColor: '#f1f1f1',
            borderColor: '#ccc'
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

6. 地图交互效果

ECharts 地图支持多种交互效果,如点击事件、鼠标悬停提示等。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

// 地图点击事件
myChart.on('click', function (params) {
    console.log(params.name + ' 被点击了!');
});

7. 地图动态数据更新

ECharts 地图支持动态数据更新,使您能够实时展示地图数据变化。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

// 动态数据更新
setInterval(function () {
    var data = [
        {name: '北京', value: Math.round(Math.random() * 1000)},
        {name: '上海', value: Math.round(Math.random() * 1000)}
    ];
    myChart.setOption({
        series: [{
            data: data
        }]
    });
}, 1000);

8. 多地图叠加

ECharts 支持多个地图叠加,让您能够在一个图表中展示多个区域数据。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }, {
        type: 'map',
        mapType: 'world',
        label: {
            show: true
        },
        data: [{
            name: 'China',
            value: 100
        }, {
            name: 'Japan',
            value: 200
        }]
    }]
};

myChart.setOption(option);

9. 地图自定义标签

您可以通过自定义标签来展示地图数据详情。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true,
            formatter: function (params) {
                return params.name + ': ' + params.value;
            }
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

10. 地图动画效果

ECharts 地图支持丰富的动画效果,使您的地图更加生动。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

// 地图动画效果
myChart.dispatchAction({
    type: 'animationPlay',
    animationDuration: 1000
});

11. 地图数据可视化

通过 ECharts 地图,您可以轻松实现数据可视化,使数据更加直观易懂。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

12. 地图数据导出

ECharts 地图支持数据导出功能,让您能够将地图数据导出为其他格式。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

// 数据导出
myChart.on('dataZoom', function (params) {
    console.log(params);
});

13. 地图自定义工具栏

您可以通过自定义工具栏来增强 ECharts 地图的交互性。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

// 自定义工具栏
var toolBar = echarts.util.mapTool({
    dataView: {
        readOnly: false,
        optionToContent: function (opt) {
            return opt;
        },
        contentToOption: function (content) {
            return {
                series: [{
                    type: 'map',
                    mapType: 'china',
                    label: {
                        show: true
                    },
                    data: JSON.parse(content)
                }]
            };
        }
    }
});

echarts.util.createEChartsBar(myChart, toolBar);

14. 地图自定义缩放控件

ECharts 地图支持自定义缩放控件,使您能够更好地控制地图缩放。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

// 自定义缩放控件
var zoomControl = echarts.util.createEChartsControl({
    type: 'slider',
    position: ['right', 'bottom'],
    onInit: function (dom, instance) {
        instance.dispatchAction({
            type: 'dataZoom',
            start: 0,
            end: 100
        });
    }
});

echarts.util.createEChartsBar(myChart, zoomControl);

15. 地图自定义地图样式

您可以通过自定义地图样式来提升地图的视觉效果。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        itemStyle: {
            areaColor: '#f1f1f1',
            borderColor: '#ccc'
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

16. 地图自定义标签样式

您可以通过自定义标签样式来提升地图的可读性。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true,
            textStyle: {
                color: '#fff'
            }
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

17. 地图自定义动画效果

ECharts 地图支持丰富的动画效果,使您的地图更加生动。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

// 地图动画效果
myChart.dispatchAction({
    type: 'animationPlay',
    animationDuration: 1000
});

18. 地图数据可视化

通过 ECharts 地图,您可以轻松实现数据可视化,使数据更加直观易懂。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

19. 地图数据导出

ECharts 地图支持数据导出功能,让您能够将地图数据导出为其他格式。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

// 数据导出
myChart.on('dataZoom', function (params) {
    console.log(params);
});

20. 地图自定义工具栏

您可以通过自定义工具栏来增强 ECharts 地图的交互性。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

// 自定义工具栏
var toolBar = echarts.util.mapTool({
    dataView: {
        readOnly: false,
        optionToContent: function (opt) {
            return opt;
        },
        contentToOption: function (content) {
            return {
                series: [{
                    type: 'map',
                    mapType: 'china',
                    label: {
                        show: true
                    },
                    data: JSON.parse(content)
                }]
            };
        }
    }
});

echarts.util.createEChartsBar(myChart, toolBar);

21. 地图自定义缩放控件

ECharts 地图支持自定义缩放控件,使您能够更好地控制地图缩放。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

// 自定义缩放控件
var zoomControl = echarts.util.createEChartsControl({
    type: 'slider',
    position: ['right', 'bottom'],
    onInit: function (dom, instance) {
        instance.dispatchAction({
            type: 'dataZoom',
            start: 0,
            end: 100
        });
    }
});

echarts.util.createEChartsBar(myChart, zoomControl);

22. 地图自定义地图样式

您可以通过自定义地图样式来提升地图的视觉效果。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        itemStyle: {
            areaColor: '#f1f1f1',
            borderColor: '#ccc'
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

23. 地图自定义标签样式

您可以通过自定义标签样式来提升地图的可读性。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true,
            textStyle: {
                color: '#fff'
            }
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

24. 地图自定义动画效果

ECharts 地图支持丰富的动画效果,使您的地图更加生动。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

// 地图动画效果
myChart.dispatchAction({
    type: 'animationPlay',
    animationDuration: 1000
});

25. 地图数据可视化

通过 ECharts 地图,您可以轻松实现数据可视化,使数据更加直观易懂。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

26. 地图数据导出

ECharts 地图支持数据导出功能,让您能够将地图数据导出为其他格式。

”`javascript // 示例代码 var myChart = echarts.init(document.getElementById(‘main’));

var option = {

series: [{
    type: 'map',
分享到: