引言
在信息爆炸的时代,数据可视化成为传达信息、辅助决策的重要工具。ECharts 是一个使用 JavaScript 实现的开源可视化库,它支持多种图表类型,其中地图图表因其直观的地理信息展示而备受青睐。本文将带你通过20个实用案例,轻松掌握 ECharts 地图图表的绘制技巧。
案例 1:中国地图省份点击事件
// 引入 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: '北京', selected: true},
// 其他省份...
]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例 2:世界地图展示
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '世界地图展示'
},
tooltip: {
trigger: 'item',
formatter: '{b}<br/>{c}'
},
series: [{
name: '世界',
type: 'map',
mapType: 'world',
label: {
show: true
},
data: [
// 国家名称, 人口数量...
]
}]
};
myChart.setOption(option);
案例 3:中国地图热力图
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '中国地图热力图'
},
tooltip: {
trigger: 'item',
formatter: '{b} : {c}'
},
visualMap: {
min: 0,
max: 1000,
left: 'left',
top: 'bottom',
text: ['高','低'], // 文本,默认为数值文本
calculable: true
},
series: [{
name: '中国',
type: 'map',
mapType: 'china',
label: {
show: true
},
data: [
// 省份名称, 人口数量...
]
}]
};
myChart.setOption(option);
案例 4:美国州地图点击事件
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '美国州地图点击事件'
},
tooltip: {
trigger: 'item',
formatter: '{b}'
},
series: [{
name: '美国',
type: 'map',
mapType: 'USA',
label: {
show: true
},
data: [
// 州名称, 数据...
]
}]
};
myChart.setOption(option);
案例 5:自定义地图数据
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '自定义地图数据'
},
tooltip: {
trigger: 'item',
formatter: '{b}'
},
series: [{
name: '自定义地图',
type: 'map',
mapType: 'custom',
label: {
show: true
},
data: [
// 自定义区域数据...
]
}]
};
myChart.setOption(option);
案例 6:全球疫情地图
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '全球疫情地图'
},
tooltip: {
trigger: 'item',
formatter: '{b} : {c}'
},
visualMap: {
min: 0,
max: 1000,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [{
name: '全球疫情',
type: 'map',
mapType: 'world',
label: {
show: true
},
data: [
// 国家名称, 确诊病例...
]
}]
};
myChart.setOption(option);
案例 7:中国城市地图
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '中国城市地图'
},
tooltip: {
trigger: 'item',
formatter: '{b}'
},
series: [{
name: '中国城市',
type: 'map',
mapType: 'china',
label: {
show: true
},
data: [
// 城市名称, 数据...
]
}]
};
myChart.setOption(option);
案例 8:世界城市地图
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '世界城市地图'
},
tooltip: {
trigger: 'item',
formatter: '{b}'
},
series: [{
name: '世界城市',
type: 'map',
mapType: 'world',
label: {
show: true
},
data: [
// 城市名称, 数据...
]
}]
};
myChart.setOption(option);
案例 9:中国地铁线路图
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '中国地铁线路图'
},
tooltip: {
trigger: 'item',
formatter: '{b}'
},
series: [{
name: '中国地铁',
type: 'lines',
coordinateSystem: 'geo',
data: [
// 起点坐标, 终点坐标, 数据...
],
lineStyle: {
curveness: 0.2
}
}]
};
myChart.setOption(option);
案例 10:世界航班地图
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '世界航班地图'
},
tooltip: {
trigger: 'item',
formatter: '{b}'
},
series: [{
name: '世界航班',
type: 'lines',
coordinateSystem: 'geo',
data: [
// 起点坐标, 终点坐标, 数据...
],
lineStyle: {
curveness: 0.2
}
}]
};
myChart.setOption(option);
案例 11:中国行政区划图
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '中国行政区划图'
},
tooltip: {
trigger: 'item',
formatter: '{b}'
},
series: [{
name: '中国行政区划',
type: 'map',
mapType: 'china',
label: {
show: true
},
data: [
// 行政区划名称, 数据...
]
}]
};
myChart.setOption(option);
案例 12:世界行政区划图
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '世界行政区划图'
},
tooltip: {
trigger: 'item',
formatter: '{b}'
},
series: [{
name: '世界行政区划',
type: 'map',
mapType: 'world',
label: {
show: true
},
data: [
// 行政区划名称, 数据...
]
}]
};
myChart.setOption(option);
案例 13:中国高速公路地图
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '中国高速公路地图'
},
tooltip: {
trigger: 'item',
formatter: '{b}'
},
series: [{
name: '中国高速公路',
type: 'map',
mapType: 'china',
label: {
show: true
},
data: [
// 省份名称, 数据...
]
}]
};
myChart.setOption(option);
案例 14:世界高速公路地图
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '世界高速公路地图'
},
tooltip: {
trigger: 'item',
formatter: '{b}'
},
series: [{
name: '世界高速公路',
type: 'map',
mapType: 'world',
label: {
show: true
},
data: [
// 国家名称, 数据...
]
}]
};
myChart.setOption(option);
案例 15:中国铁路线路图
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '中国铁路线路图'
},
tooltip: {
trigger: 'item',
formatter: '{b}'
},
series: [{
name: '中国铁路',
type: 'lines',
coordinateSystem: 'geo',
data: [
// 起点坐标, 终点坐标, 数据...
],
lineStyle: {
curveness: 0.2
}
}]
};
myChart.setOption(option);
案例 16:世界铁路线路图
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '世界铁路线路图'
},
tooltip: {
trigger: 'item',
formatter: '{b}'
},
series: [{
name: '世界铁路',
type: 'lines',
coordinateSystem: 'geo',
data: [
// 起点坐标, 终点坐标, 数据...
],
lineStyle: {
curveness: 0.2
}
}]
};
myChart.setOption(option);
案例 17:中国城市空气质量地图
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '中国城市空气质量地图'
},
tooltip: {
trigger: 'item',
formatter: '{b} : {c}'
},
visualMap: {
min: 0,
max: 500,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [{
name: '空气质量',
type: 'map',
mapType: 'china',
label: {
show: true
},
data: [
// 城市名称, 空气质量指数...
]
}]
};
myChart.setOption(option);
案例 18:世界城市空气质量地图
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '世界城市空气质量地图'
},
tooltip: {
trigger: 'item',
formatter: '{b} : {c}'
},
visualMap: {
min: 0,
max: 500,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [{
name: '空气质量',
type: 'map',
mapType: 'world',
label: {
show: true
},
data: [
// 城市名称, 空气质量指数...
]
}]
};
myChart.setOption(option);
案例 19:中国地震分布图
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '中国地震分布图'
},
tooltip: {
trigger: 'item',
formatter: '{b} : {c}'
},
visualMap: {
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [{
name: '地震分布',
type: 'map',
mapType: 'china',
label: {
show: true
},
data: [
// 省份名称, 地震次数...
]
}]
};
myChart.setOption(option);
案例 20:世界地震分布图
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '世界地震分布图'
},
tooltip: {
trigger: 'item',
formatter: '{b} : {c}'
},
visualMap: {
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [{
name: '地震分布',
type: 'map',
mapType: 'world',
label: {
show: true
},
data: [
// 国家名称, 地震次数...
]
}]
};
myChart.setOption(option);
结语
通过以上20个实用案例,相信你已经对 ECharts 地图图表的绘制有了更深入的了解。在实际应用中,你可以根据自己的需求选择合适的地图类型和配置项,让数据可视化更加生动、直观。祝你在数据可视化道路上越走越远!