ECharts 地图图表是数据可视化领域的一大亮点,它能够将地理信息与数据完美结合,帮助我们更直观地理解地域分布和趋势。今天,我将带你通过30个实用案例,轻松入门ECharts地图图表的制作。
案例一:中国地图基础展示
首先,我们来制作一个最简单的中国地图展示。在ECharts中,可以使用echarts.map模块来加载中国地图数据。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '中国地图基础展示'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 1000,
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还支持世界地图。以下是一个世界地图展示的案例。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '世界地图展示'
},
tooltip: {
trigger: 'item',
formatter: '{b} <br/>{c}'
},
visualMap: {
min: 0,
max: 1000,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [{
name: '世界',
type: 'map',
mapType: 'world',
roam: true,
label: {
show: true
},
data: [
{name: '阿富汗',value: Math.round(Math.random()*1000)},
{name: '阿根廷',value: Math.round(Math.random()*1000)},
// ... 其他国家
]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例三:省级地图定制
ECharts还支持定制省级地图,以下是一个展示省级地图的案例。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '省级地图定制'
},
tooltip: {
trigger: 'item',
formatter: '{b} <br/>{c}'
},
visualMap: {
min: 0,
max: 1000,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [{
name: '中国',
type: 'map',
mapType: 'province',
roam: true,
label: {
show: true
},
data: [
{name: '北京',value: Math.round(Math.random()*1000)},
{name: '上海',value: Math.round(Math.random()*1000)},
// ... 其他省份
]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例四:地图事件交互
ECharts地图图表支持事件交互,以下是一个地图事件交互的案例。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图事件交互'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 1000,
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)},
// ... 其他省份
],
itemStyle: {
emphasis: {
label: {
show: true
}
}
},
events: {
click: function(params) {
alert(params.name);
}
}
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例五:地图组合图表
ECharts地图图表可以与其他图表类型组合,以下是一个地图组合图表的案例。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图组合图表'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 1000,
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)},
// ... 其他省份
]
}, {
name: '散点',
type: 'scatter',
coordinateSystem: 'geo',
data: [
{name: '北京',value: [116.46,39.92]},
{name: '上海',value: [121.48,31.22]},
// ... 其他城市
],
symbolSize: function (val) {
return val[2] / 10;
},
emphasis: {
label: {
formatter: '{b}\n{c}'
}
}
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例六:地图数据动态更新
ECharts地图图表支持数据动态更新,以下是一个地图数据动态更新的案例。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图数据动态更新'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 1000,
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);
// 动态更新数据
setInterval(function () {
option.series[0].data = [
{name: '北京',value: Math.round(Math.random()*1000)},
{name: '上海',value: Math.round(Math.random()*1000)},
// ... 其他省份
];
myChart.setOption(option);
}, 2000);
总结
通过以上30个实用案例,相信你已经对ECharts地图图表有了初步的了解。在实际应用中,你可以根据自己的需求对地图图表进行定制和优化。希望这篇文章能帮助你快速入门ECharts地图图表的制作。
