ECharts 地图图表是一种强大的数据可视化工具,可以帮助你将地理位置信息与数据统计直观地展示出来。对于新手来说,可能会觉得上手有些难度。别担心,本文将为你提供20个实用案例,带你轻松掌握 ECharts 地图图表的绘制技巧。
1. 地图基本绘制
案例一:绘制中国地图
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '中国地图'
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '中国',
type: 'map',
mapType: 'china',
roam: true,
label: {
show: false,
emphasis: {
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: {
trigger: 'item',
formatter: '{b}:{c}'
},
series: [
{
name: '世界',
type: 'map',
mapType: 'world',
roam: true,
label: {
show: true,
color: '#fff'
},
data: [
{name: '美国', value: Math.round(Math.random() * 1000)},
{name: '中国', value: Math.round(Math.random() * 1000)}
// ... 其他国家数据
]
}
]
};
myChart.setOption(option);
2. 地图交互效果
案例三:点击地图区域跳转页面
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '点击地图区域跳转页面'
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '中国',
type: 'map',
mapType: 'china',
roam: true,
label: {
show: false,
emphasis: {
show: true
}
},
data: [
{name: '北京', value: Math.round(Math.random() * 1000)},
{name: '上海', value: Math.round(Math.random() * 1000)}
// ... 其他城市数据
],
itemStyle: {
emphasis: {
label: {
show: true
}
}
}
}
]
};
myChart.on('click', function (params) {
if (params.componentType === 'series') {
window.location.href = 'http://www.example.com/' + params.name;
}
});
myChart.setOption(option);
3. 地图数据可视化
案例四:显示人口密度
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '中国人口密度'
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '中国人口密度',
type: 'map',
mapType: 'china',
roam: true,
label: {
show: false,
emphasis: {
show: true
}
},
data: [
{name: '北京', value: 120000000},
{name: '上海', value: 240000000}
// ... 其他城市数据
]
}
]
};
myChart.setOption(option);
案例五:显示GDP
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '中国GDP'
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '中国GDP',
type: 'map',
mapType: 'china',
roam: true,
label: {
show: false,
emphasis: {
show: true
}
},
data: [
{name: '北京', value: 300000000000},
{name: '上海', value: 500000000000}
// ... 其他城市数据
]
}
]
};
myChart.setOption(option);
4. 地图自定义
案例六:自定义地图样式
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '自定义地图样式'
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '中国',
type: 'map',
mapType: 'china',
roam: true,
label: {
show: false,
emphasis: {
show: true
}
},
itemStyle: {
normal: {
areaColor: '#323c48',
borderColor: '#111'
},
emphasis: {
areaColor: '#2a333d'
}
},
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: {
trigger: 'item'
},
series: [
{
name: '中国',
type: 'map',
mapType: 'china',
roam: true,
label: {
show: false,
emphasis: {
show: true
}
},
itemStyle: {
normal: {
areaColor: '#323c48',
borderColor: '#111'
},
emphasis: {
areaColor: '#2a333d'
}
},
data: [
{name: '北京', value: Math.round(Math.random() * 1000)},
{name: '上海', value: Math.round(Math.random() * 1000)}
// ... 其他城市数据
]
}
]
};
myChart.setOption(option);
5. 地图与其他图表结合
案例八:地图与折线图结合
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '地图与折线图结合'
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '中国',
type: 'map',
mapType: 'china',
roam: true,
label: {
show: false,
emphasis: {
show: true
}
},
data: [
{name: '北京', value: Math.round(Math.random() * 1000)},
{name: '上海', value: Math.round(Math.random() * 1000)}
// ... 其他城市数据
]
},
{
name: '折线图',
type: 'line',
symbolSize: 10,
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: {
trigger: 'item'
},
series: [
{
name: '中国',
type: 'map',
mapType: 'china',
roam: true,
label: {
show: false,
emphasis: {
show: true
}
},
data: [
{name: '北京', value: Math.round(Math.random() * 1000)},
{name: '上海', value: Math.round(Math.random() * 1000)}
// ... 其他城市数据
]
},
{
name: '柱状图',
type: 'bar',
barWidth: 30,
data: [
{name: '北京', value: Math.round(Math.random() * 1000)},
{name: '上海', value: Math.round(Math.random() * 1000)}
// ... 其他城市数据
]
}
]
};
myChart.setOption(option);
总结
通过以上20个案例,相信你已经对 ECharts 地图图表的绘制技巧有了初步的了解。在实际应用中,你可以根据需求调整地图样式、数据、交互效果等,将地图与其他图表结合,展示更加丰富和生动的数据可视化效果。希望这篇文章能帮助你快速掌握 ECharts 地图图表的绘制技巧。