引言
地图图表是一种直观、生动的数据展示方式,能够帮助我们更好地理解地理分布和数据关联。ECharts 是一款功能强大的 JavaScript 图表库,支持多种图表类型,包括地图图表。本文将带领新手一步步学习如何使用 ECharts 制作地图图表,并通过实例解析,让你轻松上手。
第一节:ECharts 地图图表简介
1.1 ECharts 地图图表概述
ECharts 地图图表是基于地理坐标系统,将数据与地图元素结合,以可视化形式展示地理分布和数据关联的图表。它支持多种地图类型,如中国地图、世界地图、行政区划地图等。
1.2 ECharts 地图图表的特点
- 支持多种地图类型和自定义地图;
- 数据可视化效果丰富,交互性强;
- 支持多种数据格式,如 JSON、GeoJSON 等;
- 良好的兼容性和扩展性。
第二节:ECharts 地图图表制作基础
2.1 初始化 ECharts 实例
var myChart = echarts.init(document.getElementById('main'));
2.2 配置地图图表
var option = {
title: {
text: '中国地图示例'
},
tooltip: {},
visualMap: {
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'], // 文本,默认为数值文本
calculable: true
},
series: [
{
name: '数据',
type: 'map',
mapType: 'china',
roam: true,
label: {
normal: {
show: true
},
emphasis: {
show: true
}
},
data: [
{name: '北京',value: Math.round(Math.random() * 1000)},
{name: '上海',value: Math.round(Math.random() * 1000)},
// ... 其他城市数据
]
}
]
};
2.3 渲染地图图表
myChart.setOption(option);
第三节:ECharts 地图图表进阶
3.1 自定义地图
ECharts 支持自定义地图,你可以通过 GeoJSON 格式定义地图区域。
var geoCoordMap = {
'北京': [116.46,39.92],
'上海': [121.48,31.22],
// ... 其他城市坐标
};
var option = {
// ... 其他配置
series: [
{
// ... 其他配置
data: [
{name: '北京',value: Math.round(Math.random() * 1000)},
{name: '上海',value: Math.round(Math.random() * 1000)},
// ... 其他城市数据
],
// 自定义坐标
coordinateSystem: 'geo',
geoIndex: 0,
// 根据城市名称获取坐标
itemStyle: {
normal: {
label: {
show: true,
position: 'right',
formatter: function (params) {
return params.name + '\n' + params.value;
}
}
},
emphasis: {
label: {
show: true
}
}
},
// 根据城市名称获取坐标
label: {
normal: {
show: true,
position: 'right',
formatter: function (params) {
return params.name;
}
},
emphasis: {
show: true
}
},
// 根据城市名称获取坐标
zlevel: 1,
// 根据城市名称获取坐标
data: [
{name: '北京',value: Math.round(Math.random() * 1000)},
{name: '上海',value: Math.round(Math.random() * 1000)},
// ... 其他城市数据
]
}
]
};
3.2 动画效果
ECharts 支持地图图表的动画效果,可以通过 animation 属性进行配置。
var option = {
// ... 其他配置
series: [
{
// ... 其他配置
animation: true,
// 动画效果配置
animationDuration: 1000,
animationEasing: 'cubicInOut'
}
]
};
第四节:实例解析
4.1 实例一:中国地图
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
</head>
<body style="height: 100%; margin: 0">
<div id="main" style="height: 100%"></div>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.0.0/echarts.min.js"></script>
<script type="text/javascript">
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '中国地图示例'
},
tooltip: {},
visualMap: {
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '数据',
type: 'map',
mapType: 'china',
roam: true,
label: {
normal: {
show: true
},
emphasis: {
show: true
}
},
data: [
{name: '北京',value: Math.round(Math.random() * 1000)},
{name: '上海',value: Math.round(Math.random() * 1000)},
// ... 其他城市数据
]
}
]
};
myChart.setOption(option);
</script>
</body>
</html>
4.2 实例二:自定义地图
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
</head>
<body style="height: 100%; margin: 0">
<div id="main" style="height: 100%"></div>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.0.0/echarts.min.js"></script>
<script type="text/javascript">
var myChart = echarts.init(document.getElementById('main'));
var geoCoordMap = {
'北京': [116.46,39.92],
'上海': [121.48,31.22],
// ... 其他城市坐标
};
var option = {
title: {
text: '自定义地图示例'
},
tooltip: {},
visualMap: {
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '数据',
type: 'map',
mapType: 'custom',
roam: true,
label: {
normal: {
show: true
},
emphasis: {
show: true
}
},
coordinateSystem: 'geo',
geoIndex: 0,
itemStyle: {
normal: {
label: {
show: true,
position: 'right',
formatter: function (params) {
return params.name + '\n' + params.value;
}
}
},
emphasis: {
label: {
show: true
}
}
},
label: {
normal: {
show: true,
position: 'right',
formatter: function (params) {
return params.name;
}
},
emphasis: {
show: true
}
},
zlevel: 1,
data: [
{name: '北京',value: Math.round(Math.random() * 1000)},
{name: '上海',value: Math.round(Math.random() * 1000)},
// ... 其他城市数据
]
}
]
};
myChart.setOption(option);
</script>
</body>
</html>
结语
通过本文的学习,相信你已经对 ECharts 地图图表制作有了初步的了解。在实际应用中,你可以根据需求调整地图类型、数据格式、动画效果等,让地图图表更加生动、直观。不断实践和探索,你将逐渐成为 ECharts 地图图表制作的高手。