在当今数据可视化的世界里,ECharts 地图图表因其丰富的功能和易用性而备受青睐。对于新手来说,ECharts 地图图表的制作可能显得有些复杂,但不用担心,通过以下几个实用案例,我们将一步步教你轻松上手 ECharts 地图图表的制作。
案例一:中国地图的基本绘制
步骤 1:引入 ECharts 和地图数据
首先,你需要引入 ECharts 库和对应的地图数据。这里以中国地图为例:
<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>
步骤 2:初始化图表
接下来,创建一个 HTML 元素作为图表的容器,并初始化 ECharts 实例:
var myChart = echarts.init(document.getElementById('main'));
步骤 3:配置图表
最后,配置图表的选项,包括标题、图例、系列等:
var option = {
title: {
text: '中国地图示例'
},
tooltip: {},
legend: {
orient: 'vertical',
left: 'left',
data:['销量']
},
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);
案例二:世界地图的绘制
世界地图的绘制与中国地图类似,只是需要引入不同的地图数据。以下是一个简单的世界地图绘制示例:
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '世界地图示例'
},
tooltip: {},
series: [
{
name: '世界销量',
type: 'map',
mapType: 'world',
label: {
show: true
},
data: [
{name: 'Afghanistan', value: Math.round(Math.random() * 1000)},
{name: 'Albania', 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: 'heatmap',
data: [
[1, 2, 3],
[2, 3, 4],
[3, 4, 5],
// ... 其他数据
]
}
]
};
myChart.setOption(option);
案例四:地图上的路径绘制
在地图上绘制路径可以用来表示某个事件的传播路径或迁徙路径。以下是一个示例:
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '路径绘制示例'
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '迁徙路线',
type: 'lines',
coordinateSystem: 'geo',
data: [
{
coords: [
[116.46, 39.92],
[121.48, 31.23],
[121.23, 31.28],
[121.33, 31.34]
],
lineStyle: {
normal: {
color: 'source',
opacity: 0.6,
width: 1,
curveness: 0.2
}
},
effect: {
show: true,
period: 6,
trailLength: 0.7,
color: '#fff',
symbolSize: 3
},
label: {
normal: {
show: false,
position: 'end',
formatter: '{b}'
}
},
emphasis: {
label: {
show: true
}
}
}
],
zlevel: 1
},
{
name: '散点',
type: 'effectScatter',
coordinateSystem: 'geo',
data: [
[116.46, 39.92],
[121.48, 31.23],
[121.23, 31.28],
[121.33, 31.34]
],
symbolSize: 10,
showEffectOn: 'render',
rippleEffect: {
brushType: 'stroke'
},
hoverAnimation: true,
label: {
normal: {
formatter: '{b}',
position: 'right',
show: true
}
},
zlevel: 2
}
]
};
myChart.setOption(option);
案例五:地图上的自定义元素
除了上述示例,ECharts 还允许你在地图上添加自定义元素,如标记、图片等。以下是一个添加标记的示例:
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '自定义元素示例'
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '标记',
type: 'effectScatter',
coordinateSystem: 'geo',
data: [
[116.46, 39.92, '北京'],
[121.48, 31.23, '上海'],
[121.23, 31.28, '杭州'],
[121.33, 31.34, '苏州']
],
symbolSize: 10,
showEffectOn: 'render',
rippleEffect: {
brushType: 'stroke'
},
hoverAnimation: true,
label: {
normal: {
formatter: '{c}',
position: 'right',
show: true
}
},
zlevel: 2
}
]
};
myChart.setOption(option);
通过以上五个案例,相信你已经对 ECharts 地图图表的制作有了初步的了解。在实际应用中,你可以根据自己的需求,灵活运用这些技巧,制作出美观、实用的地图图表。
