ECharts 是一款功能强大的 JavaScript 数据可视化库,它提供了丰富的图表类型,其中地图图表是 ECharts 中非常受欢迎的一个功能。通过 ECharts 地图图表,我们可以轻松地将各种地图数据可视化,让数据更加直观易懂。本文将为您介绍 30 个实用案例,帮助您快速掌握 ECharts 地图图表的使用方法。
案例一:中国地图数据可视化
使用 ECharts 地图图表,我们可以将中国地图上的数据以不同颜色或形状进行展示,例如展示各省的GDP、人口数量等。
// 中国地图数据可视化示例代码
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '中国地图数据可视化',
subtext: '示例',
left: 'center'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 10000,
left: 'left',
top: 'bottom',
text: ['高','低'], // 文本,默认为数值文本
calculable: true
},
series: [
{
name: '中国',
type: 'map',
mapType: 'china',
roam: false,
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: '世界地图数据可视化',
subtext: '示例',
left: 'center'
},
tooltip: {
trigger: 'item',
formatter: '{b}: {c}'
},
visualMap: {
min: 0,
max: 10000,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '世界',
type: 'map',
mapType: 'world',
roam: false,
label: {
show: true
},
data: [
{name: 'China', value: Math.round(Math.random() * 1000)},
{name: 'USA', value: Math.round(Math.random() * 1000)},
// ... 其他国家数据
]
}
]
};
myChart.setOption(option);
案例三:省市区级地图数据可视化
ECharts 地图图表还支持省市区级地图的绘制,以下是一个省市区级地图数据可视化的示例:
// 省市区级地图数据可视化示例代码
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '省市区级地图数据可视化',
subtext: '示例',
left: 'center'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 10000,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '省市区级',
type: 'map',
mapType: 'province',
roam: false,
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: '自定义地图数据可视化',
subtext: '示例',
left: 'center'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 10000,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '自定义',
type: 'map',
mapType: 'custom',
roam: false,
label: {
show: true
},
data: [
{name: '点1', value: Math.round(Math.random() * 1000)},
{name: '点2', value: Math.round(Math.random() * 1000)},
// ... 其他自定义数据
]
}
]
};
myChart.setOption(option);
案例五:地图动画效果
ECharts 地图图表支持丰富的动画效果,以下是一个地图动画效果的示例:
// 地图动画效果示例代码
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '地图动画效果',
subtext: '示例',
left: 'center'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 10000,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '动画效果',
type: 'map',
mapType: 'china',
roam: false,
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: '地图点击事件',
subtext: '示例',
left: 'center'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 10000,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '点击事件',
type: 'map',
mapType: 'china',
roam: false,
label: {
show: true
},
data: [
{name: '北京', value: Math.round(Math.random() * 1000)},
{name: '上海', value: Math.round(Math.random() * 1000)},
// ... 其他省份数据
]
}
]
};
myChart.on('click', function (params) {
console.log(params.name); // 输出点击的省份名称
});
myChart.setOption(option);
案例七:地图联动
ECharts 地图图表支持地图联动,以下是一个地图联动的示例:
// 地图联动示例代码
var myChart1 = echarts.init(document.getElementById('main1'));
var myChart2 = echarts.init(document.getElementById('main2'));
var option1 = {
title: {
text: '地图联动1',
subtext: '示例',
left: 'center'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 10000,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '联动1',
type: 'map',
mapType: 'china',
roam: false,
label: {
show: true
},
data: [
{name: '北京', value: Math.round(Math.random() * 1000)},
{name: '上海', value: Math.round(Math.random() * 1000)},
// ... 其他省份数据
]
}
]
};
var option2 = {
title: {
text: '地图联动2',
subtext: '示例',
left: 'center'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 10000,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '联动2',
type: 'map',
mapType: 'china',
roam: false,
label: {
show: true
},
data: [
{name: '北京', value: Math.round(Math.random() * 1000)},
{name: '上海', value: Math.round(Math.random() * 1000)},
// ... 其他省份数据
]
}
]
};
myChart1.setOption(option1);
myChart2.setOption(option2);
myChart1.on('click', function (params) {
myChart2.setOption(option2);
});
案例八:地图数据动态更新
ECharts 地图图表支持地图数据的动态更新,以下是一个地图数据动态更新的示例:
// 地图数据动态更新示例代码
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '地图数据动态更新',
subtext: '示例',
left: 'center'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 10000,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '动态更新',
type: 'map',
mapType: 'china',
roam: false,
label: {
show: true
},
data: [
{name: '北京', value: Math.round(Math.random() * 1000)},
{name: '上海', value: Math.round(Math.random() * 1000)},
// ... 其他省份数据
]
}
]
};
myChart.setOption(option);
// 动态更新数据
setInterval(function () {
var data = [];
for (var i = 0; i < 34; i++) {
data.push({
name: '北京',
value: Math.round(Math.random() * 1000)
});
}
myChart.setOption({
series: [{
data: data
}]
});
}, 2000);
案例九:地图自定义样式
ECharts 地图图表支持自定义样式,以下是一个地图自定义样式的示例:
// 地图自定义样式示例代码
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '地图自定义样式',
subtext: '示例',
left: 'center'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 10000,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '自定义样式',
type: 'map',
mapType: 'china',
roam: false,
label: {
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);
案例十:地图多层级展示
ECharts 地图图表支持多层级展示,以下是一个地图多层级展示的示例:
// 地图多层级展示示例代码
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '地图多层级展示',
subtext: '示例',
left: 'center'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 10000,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '多层级展示',
type: 'map',
mapType: 'china',
roam: false,
label: {
show: true
},
data: [
{name: '北京', value: Math.round(Math.random() * 1000)},
{name: '上海', value: Math.round(Math.random() * 1000)},
// ... 其他省份数据
]
},
{
name: '多层级展示2',
type: 'map',
mapType: 'china',
roam: false,
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: '地图缩放和平移',
subtext: '示例',
left: 'center'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 10000,
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 地图图表支持事件监听,以下是一个地图事件监听的示例:
// 地图事件监听示例代码
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '地图事件监听',
subtext: '示例',
left: 'center'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 10000,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '事件监听',
type: 'map',
mapType: 'china',
roam: false,
label: {
show: true
},
data: [
{name: '北京', value: Math.round(Math.random() * 1000)},
{name: '上海', value: Math.round(Math.random() * 1000)},
// ... 其他省份数据
]
}
]
};
myChart.on('click', function (params) {
console.log(params.name); // 输出点击的省份名称
});
myChart.setOption(option);
案例十三:地图数据过滤
ECharts 地图图表支持数据过滤,以下是一个地图数据过滤的示例:
// 地图数据过滤示例代码
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '地图数据过滤',
subtext: '示例',
left: 'center'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 10000,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '数据过滤',
type: 'map',
mapType: 'china',
roam: false,
label: {
show: true
},
data: [
{name: '北京', value: Math.round(Math.random() * 1000)},
{name: '上海', value: Math.round(Math.random() * 1000)},
// ... 其他省份数据
]
}
]
};
myChart.setOption(option);
// 过滤数据
myChart.dispatchAction({
type: 'dataZoom',
start: 0,
end: 50
});
案例十四:地图数据排序
ECharts 地图图表支持数据排序,以下是一个地图数据排序的示例:
”`javascript // 地图数据排序示例代码 var myChart = echarts.init(document.getElementById(‘main’));
var option = {
title: {
text: '地图数据排序',
subtext: '示例',
left: 'center'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 10000,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [
{
name: '数据排序
