ECharts地图图表是一种非常直观的数据展示方式,它能够将地理信息与数据统计完美结合,让用户一目了然地了解数据的分布情况。对于新手来说,掌握ECharts地图图表的制作技巧至关重要。下面,我将通过10个实用案例,带你轻松上手ECharts地图图表的制作。
案例一:中国地图图表
步骤一:引入ECharts和地图数据
首先,我们需要引入ECharts库和对应的地图数据。这里以中国地图为例,可以使用ECharts内置的中国地图数据。
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.2/echarts.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.2/map/js/china.js"></script>
步骤二:初始化地图图表
接下来,我们需要在HTML中创建一个容器,用于展示地图图表。
<div id="main" style="width: 600px;height:400px;"></div>
步骤三:配置地图图表
最后,我们需要配置地图图表的选项。
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '中国地图图表'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'], // 文本,默认为数值文本
calculable: true
},
series: [
{
name: '中国',
type: 'map',
mapType: 'china',
roam: true,
label: {
show: true
},
data: [
{name: '北京',value: Math.round(Math.random() * 1000)},
{name: '上海',value: Math.round(Math.random() * 1000)},
// ... 其他省份
]
}
]
};
myChart.setOption(option);
案例二:世界地图图表
步骤一:引入ECharts和世界地图数据
与世界地图相关的数据较多,这里我们使用ECharts内置的世界地图数据。
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.2/map/js/world.js"></script>
步骤二:初始化地图图表
与世界地图相关的步骤与案例一类似,这里不再赘述。
步骤三:配置地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '世界地图图表'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '世界',
type: 'map',
mapType: 'world',
roam: true,
label: {
show: true
},
data: [
{name: '中国',value: Math.round(Math.random() * 1000)},
{name: '美国',value: Math.round(Math.random() * 1000)},
// ... 其他国家
]
}
]
};
myChart.setOption(option);
案例三:省份地图图表
步骤一:引入ECharts和省份地图数据
省份地图数据可以通过在线API获取,这里以河南省为例。
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.2/map/js/china.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.2/map/js/province/henan.js"></script>
步骤二:初始化地图图表
与世界地图相关的步骤与案例一类似,这里不再赘述。
步骤三:配置地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '河南省地图图表'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '河南省',
type: 'map',
mapType: 'henan',
roam: true,
label: {
show: true
},
data: [
{name: '郑州市',value: Math.round(Math.random() * 1000)},
{name: '洛阳市',value: Math.round(Math.random() * 1000)},
// ... 其他城市
]
}
]
};
myChart.setOption(option);
案例四:行政区划地图图表
步骤一:引入ECharts和行政区划数据
行政区划数据可以通过在线API获取,这里以郑州市为例。
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.2/map/js/china.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.2/map/js/city/chengdu.js"></script>
步骤二:初始化地图图表
与世界地图相关的步骤与案例一类似,这里不再赘述。
步骤三:配置地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '郑州市行政区划地图图表'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '郑州市',
type: 'map',
mapType: 'chengdu',
roam: true,
label: {
show: true
},
data: [
{name: '金水区',value: Math.round(Math.random() * 1000)},
{name: '二七区',value: Math.round(Math.random() * 1000)},
// ... 其他区域
]
}
]
};
myChart.setOption(option);
案例五:多级地图图表
步骤一:引入ECharts和地图数据
多级地图数据可以通过在线API获取,这里以河南省为例。
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.2/map/js/china.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.2/map/js/province/henan.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.2/map/js/city/chengdu.js"></script>
步骤二:初始化地图图表
与世界地图相关的步骤与案例一类似,这里不再赘述。
步骤三:配置地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '河南省多级地图图表'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '河南省',
type: 'map',
mapType: 'henan',
roam: true,
label: {
show: true
},
data: [
{name: '郑州市',value: Math.round(Math.random() * 1000)},
{name: '洛阳市',value: Math.round(Math.random() * 1000)},
// ... 其他城市
]
},
{
name: '郑州市',
type: 'map',
mapType: 'chengdu',
roam: true,
label: {
show: true
},
data: [
{name: '金水区',value: Math.round(Math.random() * 1000)},
{name: '二七区',value: Math.round(Math.random() * 1000)},
// ... 其他区域
]
}
]
};
myChart.setOption(option);
案例六:散点地图图表
步骤一:引入ECharts和地图数据
散点地图数据可以通过在线API获取,这里以河南省为例。
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.2/echarts.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.2/map/js/china.js"></script>
步骤二:初始化地图图表
与世界地图相关的步骤与案例一类似,这里不再赘述。
步骤三:配置地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '河南省散点地图图表'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '河南省',
type: 'map',
mapType: 'china',
roam: true,
label: {
show: true
},
data: [
{name: '郑州市',value: Math.round(Math.random() * 1000)},
{name: '洛阳市',value: Math.round(Math.random() * 1000)},
// ... 其他城市
]
},
{
name: '散点',
type: 'scatter',
coordinateSystem: 'geo',
data: [
{name: '郑州市',value: [113.65,34.76]},
{name: '洛阳市',value: [112.54,34.07]},
// ... 其他城市
]
}
]
};
myChart.setOption(option);
案例七:热力地图图表
步骤一:引入ECharts和地图数据
热力地图数据可以通过在线API获取,这里以河南省为例。
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.2/echarts.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.2/map/js/china.js"></script>
步骤二:初始化地图图表
与世界地图相关的步骤与案例一类似,这里不再赘述。
步骤三:配置地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '河南省热力地图图表'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '河南省',
type: 'map',
mapType: 'china',
roam: true,
label: {
show: true
},
data: [
{name: '郑州市',value: Math.round(Math.random() * 1000)},
{name: '洛阳市',value: Math.round(Math.random() * 1000)},
// ... 其他城市
]
},
{
name: '热力',
type: 'heatmap',
coordinateSystem: 'geo',
data: [
{name: '郑州市',value: [113.65,34.76]},
{name: '洛阳市',value: [112.54,34.07]},
// ... 其他城市
]
}
]
};
myChart.setOption(option);
案例八:自定义地图图表
步骤一:引入ECharts和自定义地图数据
自定义地图数据可以通过在线API获取,这里以河南省为例。
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.2/echarts.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.2/map/js/china.js"></script>
步骤二:初始化地图图表
与世界地图相关的步骤与案例一类似,这里不再赘述。
步骤三:配置地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '河南省自定义地图图表'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '河南省',
type: 'map',
mapType: 'henan',
roam: true,
label: {
show: true
},
data: [
{name: '郑州市',value: Math.round(Math.random() * 1000)},
{name: '洛阳市',value: Math.round(Math.random() * 1000)},
// ... 其他城市
]
}
]
};
myChart.setOption(option);
案例九:地图动画效果
步骤一:引入ECharts和地图数据
与世界地图相关的步骤与案例一类似,这里不再赘述。
步骤二:初始化地图图表
与世界地图相关的步骤与案例一类似,这里不再赘述。
步骤三:配置地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '世界地图动画效果'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '世界',
type: 'map',
mapType: 'world',
roam: true,
label: {
show: true
},
data: [
{name: '中国',value: Math.round(Math.random() * 1000)},
{name: '美国',value: Math.round(Math.random() * 1000)},
// ... 其他国家
]
}
]
};
myChart.setOption(option);
// 动画效果
setInterval(function () {
option.series[0].data = option.series[0].data.map(function (item) {
if (item.name === '中国') {
item.value = Math.round(Math.random() * 1000);
}
return item;
});
myChart.setOption(option);
}, 1000);
案例十:地图交互效果
步骤一:引入ECharts和地图数据
与世界地图相关的步骤与案例一类似,这里不再赘述。
步骤二:初始化地图图表
与世界地图相关的步骤与案例一类似,这里不再赘述。
步骤三:配置地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '世界地图交互效果'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '世界',
type: 'map',
mapType: 'world',
roam: true,
label: {
show: true
},
data: [
{name: '中国',value: Math.round(Math.random() * 1000)},
{name: '美国',value: Math.round(Math.random() * 1000)},
// ... 其他国家
]
}
]
};
myChart.setOption(option);
// 交互效果
myChart.on('click', function (params) {
if (params.componentType === 'series') {
alert(params.name + ':' + params.value);
}
});
通过以上10个案例,相信你已经对ECharts地图图表的制作技巧有了初步的了解。在实际应用中,你可以根据自己的需求,灵活运用这些技巧,制作出各种美观、实用的地图图表。祝你学习愉快!
