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',