ECharts是一款强大的可视化库,广泛应用于数据可视化领域。其中,ECharts地图图表以其丰富的功能和灵活性,深受开发者喜爱。本篇文章将带领你通过50个实战案例,轻松掌握ECharts地图图表的绘制技巧,让你能够高效地展示地理信息。
1. 基础案例:中国地图展示
首先,我们来绘制一个基础的中国地图展示案例。通过ECharts提供的地图数据,我们可以轻松实现这一功能。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '中国地图展示'
},
tooltip: {
trigger: 'item'
},
series: [{
name: '中国',
type: 'map',
mapType: 'china',
label: {
show: true
},
data: [{
name: '北京',
value: Math.round(Math.random() * 1000)
}]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
2. 省级地图展示
接下来,我们绘制一个省级地图展示案例,例如展示江苏省的地图。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '江苏省地图展示'
},
tooltip: {
trigger: 'item'
},
series: [{
name: '江苏',
type: 'map',
mapType: 'jiangsu',
label: {
show: true
},
data: [{
name: '南京市',
value: Math.round(Math.random() * 1000)
}]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
3. 地图交互效果
为了增强用户体验,我们可以给地图添加一些交互效果,例如点击事件、缩放等。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图交互效果'
},
tooltip: {
trigger: 'item'
},
series: [{
name: '全国',
type: 'map',
mapType: 'china',
label: {
show: true
},
data: [{
name: '北京市',
value: Math.round(Math.random() * 1000)
}]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
// 监听点击事件
myChart.on('click', function (params) {
if (params.componentType === 'series') {
// 执行相关操作
console.log('点击了 ' + params.name);
}
});
4. 动态数据更新
在实际应用中,地图上的数据可能会实时变化。我们可以通过ECharts提供的setOption方法来实现动态数据更新。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '动态数据更新'
},
tooltip: {
trigger: 'item'
},
series: [{
name: '全国',
type: 'map',
mapType: 'china',
label: {
show: true
},
data: [{
name: '北京市',
value: Math.round(Math.random() * 1000)
}]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
// 设置定时器,定时更新数据
setInterval(function () {
option.series[0].data[0].value = Math.round(Math.random() * 1000);
myChart.setOption(option, true);
}, 2000);
5. 地图标注与线
在地图上添加标注和线,可以更直观地展示地理位置和关系。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
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: '标注',
type: 'effectScatter',
coordinateSystem: 'geo',
data: [{
name: '北京市',
value: [116.46, 39.92],
symbolSize: 30,
symbol: 'pin'
}],
showEffectOn: 'render'
}, {
name: '线',
type: 'lines',
coordinateSystem: 'geo',
effect: {
show: true,
period: 6,
trailLength: 0.7,
color: '#fff',
symbolSize: 3,
symbol: 'circle'
},
data: [{
coords: [[116.46, 39.92], [116.40, 39.90]]
}]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
6. 地图缩放与旋转
通过ECharts提供的缩放和旋转功能,我们可以使地图更加灵活。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图缩放与旋转'
},
tooltip: {
trigger: 'item'
},
series: [{
name: '全国',
type: 'map',
mapType: 'china',
label: {
show: true
},
data: [{
name: '北京市',
value: Math.round(Math.random() * 1000)
}]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
// 监听鼠标滚轮事件
myChart.on('wheel', function (params) {
myChart.dispatchAction({
type: 'dataZoom',
start: 0,
end: 100
});
});
// 监听鼠标拖动事件
myChart.on('mousedown', function (params) {
myChart.dispatchAction({
type: 'geoRoam'
});
});
7. 热力图效果
利用ECharts的热力图效果,可以直观地展示数据的密集程度。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '热力图效果'
},
tooltip: {
trigger: 'item'
},
visualMap: {
type: 'continuous',
min: 0,
max: 1000,
left: 'left',
top: 'bottom',
text: ['高', '低'], // 文本,默认为数值文本
calculable: true
},
series: [{
name: '全国',
type: 'heatmap',
coordinateSystem: 'geo',
data: [
// ... 数据项
]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
8. 地图聚合效果
利用ECharts的聚合效果,可以将地图上的多个点合并成一个点,以更清晰地展示数据。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
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: '聚合效果',
type: 'effectScatter',
coordinateSystem: 'geo',
data: [
// ... 数据项
],
rippleEffect: {
brushType: 'stroke'
},
showEffectOn: 'render',
hoverAnimation: true,
coordinateSystem: 'geo',
zlevel: 1
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
总结
通过以上50个实战案例,相信你已经掌握了ECharts地图图表的绘制技巧。在实际开发过程中,可以根据自己的需求选择合适的案例进行学习和参考。同时,ECharts还提供了丰富的功能,如自定义地图、地图标注、地图线等,让你能够充分发挥自己的创意,打造出更加美观和实用的地图图表。