ECharts地图图表是一种强大的数据可视化工具,它可以帮助我们以直观的方式展示地理空间数据。无论是展示国家、省份、城市,还是更细致的区域划分,ECharts地图图表都能提供丰富的功能来满足我们的需求。本文将为你带来50个实用案例解析,让你轻松上手ECharts地图图表,实现各种可视化效果。
案例一:中国地图展示
首先,我们来创建一个简单的中国地图展示。通过ECharts提供的地图数据,我们可以轻松实现。
// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入地图数据
require('echarts/map/js/china');
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '中国地图展示'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
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还支持世界地图展示。以下是一个简单的世界地图示例。
// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入世界地图数据
require('echarts/map/js/world');
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '世界地图展示'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'], // 文本,默认为数值文本
calculable: true
},
series: [
{
name: '世界',
type: 'map',
mapType: 'world',
roam: true,
label: {
show: true
},
data: [
{name: 'United States',value: Math.round(Math.random() * 1000)},
{name: 'Canada',value: Math.round(Math.random() * 1000)},
// ... 其他国家数据
]
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例三:区域划分地图
除了展示整个地图,ECharts还支持区域划分地图。以下是一个展示中国省份划分的例子。
// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入中国省份地图数据
require('echarts/map/js/china');
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '中国省份划分地图'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
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支持多层级地图,可以展示不同级别的地理空间数据。以下是一个展示中国省份和城市级别的例子。
// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入中国省份地图数据
require('echarts/map/js/china');
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '中国省份和城市级别地图'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
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: 'map',
mapType: 'china',
mapType: 'city',
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 echarts = require('echarts/lib/echarts');
// 引入中国城市地图数据
require('echarts/map/js/china');
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '中国城市热力地图'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'], // 文本,默认为数值文本
calculable: true
},
series: [
{
name: '中国',
type: 'heatmap',
coordinateSystem: 'geo',
data: [
{name: '北京市',value: Math.round(Math.random() * 1000)},
{name: '上海市',value: Math.round(Math.random() * 1000)},
// ... 其他城市数据
]
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例六:地图缩放和旋转
ECharts地图图表支持缩放和旋转功能,可以方便地查看不同级别的地理空间数据。
// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入中国地图数据
require('echarts/map/js/china');
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图缩放和旋转'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
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);
// 设置地图缩放和旋转
myChart.dispatchAction({
type: 'geoRoam',
roam: true
});
案例七:地图点击事件
ECharts地图图表支持点击事件,可以方便地与其他组件或功能进行交互。
// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入中国地图数据
require('echarts/map/js/china');
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图点击事件'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
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);
// 监听地图点击事件
myChart.on('click', function (params) {
console.log(params.name); // 输出点击的省份名称
});
案例八:地图动画效果
ECharts地图图表支持动画效果,可以增强地图的可视化效果。
// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入中国地图数据
require('echarts/map/js/china');
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图动画效果'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
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);
// 设置地图动画效果
myChart.dispatchAction({
type: 'animationPlay'
});
案例九:地图自定义样式
ECharts地图图表支持自定义样式,可以满足不同的设计需求。
// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入中国地图数据
require('echarts/map/js/china');
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图自定义样式'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
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: {
normal: {
areaColor: '#323c48',
borderColor: '#111'
},
emphasis: {
areaColor: '#2a333d'
}
}
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例十:地图与折线图结合
ECharts地图图表可以与其他图表类型结合,实现更丰富的可视化效果。以下是一个展示中国省份GDP数据的例子。
// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入中国地图数据
require('echarts/map/js/china');
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '中国省份GDP数据'
},
tooltip: {
trigger: 'item'
},
visualMap: {
min: 0,
max: 100,
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: 'GDP',
type: 'line',
xAxisIndex: 1,
yAxisIndex: 1,
data: [
{value: Math.round(Math.random() * 1000)},
{value: Math.round(Math.random() * 1000)},
// ... 其他省份数据
]
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
总结
以上是50个ECharts地图图表的实用案例解析,涵盖了地图展示、区域划分、热力地图、缩放和旋转、点击事件、动画效果、自定义样式、与其他图表结合等多个方面。通过这些案例,相信你已经对ECharts地图图表有了更深入的了解。希望这些案例能够帮助你轻松上手ECharts地图图表,实现各种可视化效果。