ECharts 是一个使用 JavaScript 实现的开源可视化库,它提供了一系列丰富的图表类型,包括地图图表。地图图表能够将数据以地理信息的形式展示出来,非常适合展示地域分布、人口统计等数据。对于数据分析新手来说,掌握地图图表的制作是一个非常有用的技能。下面,我将通过10个实战案例,带你轻松上手ECharts地图图表,玩转可视化数据分析。
实战案例一:中国地图的加载与展示
首先,我们需要在HTML文件中引入ECharts库和地图数据。以下是一个简单的示例:
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
</head>
<body style="height: 100%; margin: 0">
<div id="container" style="height: 100%"></div>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/map/js/china.js"></script>
<script type="text/javascript">
var myChart = echarts.init(document.getElementById('container'));
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);
</script>
</body>
</html>
在这个例子中,我们加载了中国地图数据,并随机生成了每个省份的数值。你可以将这个例子作为基础,进一步修改和扩展。
实战案例二:世界地图的加载与展示
ECharts 也支持世界地图的加载。以下是一个简单的示例:
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
</head>
<body style="height: 100%; margin: 0">
<div id="container" style="height: 100%"></div>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/map/js/world.js"></script>
<script type="text/javascript">
var myChart = echarts.init(document.getElementById('container'));
var option = {
title: {
text: '世界地图示例'
},
tooltip: {
trigger: 'item'
},
series: [{
name: '世界',
type: 'map',
mapType: 'world',
label: {
show: true
},
data: [
{name: 'China', value: Math.round(Math.random() * 1000)},
{name: 'United States', value: Math.round(Math.random() * 1000)},
// ... 其他国家
]
}]
};
myChart.setOption(option);
</script>
</body>
</html>
在这个例子中,我们加载了世界地图数据,并随机生成了每个国家的数值。
实战案例三:自定义地图的加载与展示
除了内置的地图数据,ECharts 还支持自定义地图的加载。以下是一个简单的示例:
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
</head>
<body style="height: 100%; margin: 0">
<div id="container" style="height: 100%"></div>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/map/js/custom.js"></script>
<script type="text/javascript">
var myChart = echarts.init(document.getElementById('container'));
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)},
// ... 其他城市
]
}]
};
myChart.setOption(option);
</script>
</body>
</html>
在这个例子中,我们加载了一个自定义地图数据,并随机生成了每个城市的数值。
实战案例四:地图上的热力图
热力图可以用来展示地图上某个区域的密集程度。以下是一个简单的示例:
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
</head>
<body style="height: 100%; margin: 0">
<div id="container" style="height: 100%"></div>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/map/js/china.js"></script>
<script type="text/javascript">
var myChart = echarts.init(document.getElementById('container'));
var option = {
title: {
text: '地图热力图示例'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 1000,
left: 'left',
top: 'bottom',
text: ['高','低'], // 文本,默认为数值文本
calculable: true
},
series: [{
name: '热力图',
type: 'heatmap',
coordinateSystem: 'geo',
data: [
{name: '北京', value: [116.46,39.92,100]},
{name: '上海', value: [121.48,31.22,300]},
// ... 其他城市
]
}]
};
myChart.setOption(option);
</script>
</body>
</html>
在这个例子中,我们使用热力图展示了北京和上海两个城市的密集程度。
实战案例五:地图上的折线图
折线图可以用来展示地图上某个区域的趋势。以下是一个简单的示例:
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
</head>
<body style="height: 100%; margin: 0">
<div id="container" style="height: 100%"></div>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/map/js/china.js"></script>
<script type="text/javascript">
var myChart = echarts.init(document.getElementById('container'));
var option = {
title: {
text: '地图折线图示例'
},
tooltip: {
trigger: 'item'
},
xAxis: {
type: 'category',
data: ['2019', '2020', '2021', '2022']
},
yAxis: {
type: 'value'
},
series: [{
name: '折线图',
type: 'line',
data: [
{name: '北京', value: [100, 150, 200, 250]},
{name: '上海', value: [200, 250, 300, 350]},
// ... 其他城市
]
}]
};
myChart.setOption(option);
</script>
</body>
</html>
在这个例子中,我们使用折线图展示了北京和上海两个城市的年度数据。
实战案例六:地图上的散点图
散点图可以用来展示地图上某个区域的分布情况。以下是一个简单的示例:
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
</head>
<body style="height: 100%; margin: 0">
<div id="container" style="height: 100%"></div>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/map/js/china.js"></script>
<script type="text/javascript">
var myChart = echarts.init(document.getElementById('container'));
var option = {
title: {
text: '地图散点图示例'
},
tooltip: {
trigger: 'item'
},
xAxis: {
type: 'value'
},
yAxis: {
type: 'value'
},
series: [{
name: '散点图',
type: 'scatter',
data: [
{name: '北京', value: [100, 100]},
{name: '上海', value: [200, 200]},
// ... 其他城市
]
}]
};
myChart.setOption(option);
</script>
</body>
</html>
在这个例子中,我们使用散点图展示了北京和上海两个城市的坐标。
实战案例七:地图上的柱状图
柱状图可以用来展示地图上某个区域的数量。以下是一个简单的示例:
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
</head>
<body style="height: 100%; margin: 0">
<div id="container" style="height: 100%"></div>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/map/js/china.js"></script>
<script type="text/javascript">
var myChart = echarts.init(document.getElementById('container'));
var option = {
title: {
text: '地图柱状图示例'
},
tooltip: {
trigger: 'item'
},
xAxis: {
type: 'category',
data: ['北京', '上海', '广州', '深圳']
},
yAxis: {
type: 'value'
},
series: [{
name: '柱状图',
type: 'bar',
data: [100, 200, 300, 400]
}]
};
myChart.setOption(option);
</script>
</body>
</html>
在这个例子中,我们使用柱状图展示了四个城市的数量。
实战案例八:地图上的饼图
饼图可以用来展示地图上某个区域的占比。以下是一个简单的示例:
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
</head>
<body style="height: 100%; margin: 0">
<div id="container" style="height: 100%"></div>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/map/js/china.js"></script>
<script type="text/javascript">
var myChart = echarts.init(document.getElementById('container'));
var option = {
title: {
text: '地图饼图示例'
},
tooltip: {
trigger: 'item'
},
series: [{
name: '饼图',
type: 'pie',
radius: '55%',
data: [
{value: 335, name: '北京'},
{value: 310, name: '上海'},
{value: 234, name: '广州'},
{value: 135, name: '深圳'}
]
}]
};
myChart.setOption(option);
</script>
</body>
</html>
在这个例子中,我们使用饼图展示了四个城市的占比。
实战案例九:地图上的雷达图
雷达图可以用来展示地图上某个区域的综合指标。以下是一个简单的示例:
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
</head>
<body style="height: 100%; margin: 0">
<div id="container" style="height: 100%"></div>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/map/js/china.js"></script>
<script type="text/javascript">
var myChart = echarts.init(document.getElementById('container'));
var option = {
title: {
text: '地图雷达图示例'
},
tooltip: {
trigger: 'item'
},
legend: {
orient: 'vertical',
left: 'left',
data: ['北京', '上海', '广州', '深圳']
},
radar: {
indicator: [
{name: '经济', max: 100},
{name: '人口', max: 100},
{name: '交通', max: 100},
{name: '环境', max: 100}
]
},
series: [{
name: '雷达图',
type: 'radar',
data: [
{value: [90, 80, 70, 60], name: '北京'},
{value: [60, 70, 80, 90], name: '上海'},
{value: [70, 60, 80, 90], name: '广州'},
{value: [80, 90, 70, 60], name: '深圳'}
]
}]
};
myChart.setOption(option);
</script>
</body>
</html>
在这个例子中,我们使用雷达图展示了四个城市的综合指标。
实战案例十:地图上的组合图表
组合图表可以用来展示地图上多个指标。以下是一个简单的示例:
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
</head>
<body style="height: 100%; margin: 0">
<div id="container" style="height: 100%"></div>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/map/js/china.js"></script>
<script type="text/javascript">
var myChart = echarts.init(document.getElementById('container'));
var option = {
title: {
text: '地图组合图表示例'
},
tooltip: {
trigger: 'item'
},
series: [{
name: '组合图表',
type: 'pie',
radius: '30%',
center: ['50%', '50%'],
data: [
{value: 335, name: '北京'},
{value: 310, name: '上海'},
{value: 234, name: '广州'},
{value: 135, name: '深圳'}
]
}, {
name: '组合图表',
type: 'bar',
data: [100, 200, 300, 400]
}]
};
myChart.setOption(option);
</script>
</body>
</html>
在这个例子中,我们使用饼图和柱状图展示了四个城市的数量和占比。
通过以上10个实战案例,相信你已经对ECharts地图图表有了初步的了解。在实际应用中,你可以根据自己的需求进行修改和扩展。希望这些案例能够帮助你轻松上手ECharts地图图表,玩转可视化数据分析。
