ECharts是一个使用JavaScript实现的开源可视化库,它能够帮助用户在网页上轻松创建交互式图表。地图图表是ECharts中的一个重要功能,它可以展示地理分布、区域对比等信息。对于新手来说,学习地图图表的制作可能会感到有些困难,但别担心,今天我就为大家带来了20个实用案例,帮助你轻松上手ECharts地图图表制作。
案例一:中国地图
首先,我们从最基础的案例开始。创建一个中国地图图表,需要以下几个步骤:
- 引入ECharts地图模块。
- 定义地图数据。
- 初始化地图实例。
- 设置图表的配置项。
// 引入ECharts主模块
var echarts = require('echarts/lib/echarts');
// 引入中国地图数据
require('echarts/map/js/china');
// 初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '中国地图'
},
tooltip: {
trigger: 'item'
},
// ...
series: [{
type: 'map',
map: 'china'
// ...
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例二:全球地图
创建全球地图图表的方法与创建中国地图类似,只是需要引入world地图数据。
// 引入世界地图数据
require('echarts/map/js/world');
// 初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '全球地图'
},
tooltip: {
trigger: 'item'
},
// ...
series: [{
type: 'map',
map: 'world'
// ...
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例三:区域统计图
在地图上展示不同区域的统计数据,可以通过为每个区域设置颜色和数值来实现。
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '区域统计图'
},
tooltip: {
trigger: 'item'
},
// ...
series: [{
type: 'map',
map: 'china',
data: [
{name: '广东', value: 1200},
{name: '江苏', value: 900},
// ...
]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例四:热力图
热力图可以展示地图上每个区域的数值大小,非常适合展示人口密度、气温分布等信息。
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '热力图'
},
tooltip: {
trigger: 'item'
},
// ...
series: [{
type: 'heatmap',
coordinateSystem: 'geo',
data: [
{name: '北京', value: [116.46,39.92,300]},
{name: '上海', value: [121.47,31.23,400]},
// ...
]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例五:动态地图
动态地图可以展示随时间变化的地理信息,例如城市人口变化、交通流量等。
// 初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '动态地图'
},
tooltip: {
trigger: 'item'
},
// ...
series: [{
type: 'map',
map: 'china',
data: [
// ...
],
animation: true
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例六:多地图组合
在同一个图表中展示多个地图,可以更直观地比较不同区域的地理信息。
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '多地图组合'
},
tooltip: {
trigger: 'item'
},
// ...
series: [{
type: 'map',
map: 'china',
// ...
}, {
type: 'map',
map: 'world',
// ...
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例七:自定义地图
如果你需要展示特定的区域,可以自定义地图数据。
// 自定义地图数据
var mapData = {
'name': '自定义地图',
'type': 'FeatureCollection',
'features': [
// ...
]
};
// 初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '自定义地图'
},
tooltip: {
trigger: 'item'
},
// ...
series: [{
type: 'map',
map: '自定义地图',
// ...
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例八:区域交互
为地图添加交互效果,例如点击区域显示详细信息。
// 初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '区域交互'
},
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b}: {c}'
},
// ...
series: [{
type: 'map',
map: 'china',
// ...
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
// 为地图添加点击事件
myChart.on('click', function (params) {
// params.name为区域名称
console.log(params.name);
});
案例九:地图动画
为地图添加动画效果,例如地图淡入淡出。
// 初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图动画'
},
tooltip: {
trigger: 'item'
},
// ...
series: [{
type: 'map',
map: 'china',
animation: true
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例十:地图缩放与平移
为地图添加缩放和平移功能,方便用户查看不同区域的细节。
// 初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图缩放与平移'
},
tooltip: {
trigger: 'item'
},
// ...
series: [{
type: 'map',
map: 'china',
// ...
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
// 添加缩放与平移事件
myChart.on('click', function (params) {
myChart.dispatchAction({
type: 'zoomIn'
});
});
案例十一:地图标记
在地图上添加标记,可以突出显示特定区域。
// 初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图标记'
},
tooltip: {
trigger: 'item'
},
// ...
series: [{
type: 'map',
map: 'china',
// ...
markPoint: {
data: [
{name: '北京', value: [116.46,39.92]}
// ...
]
}
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例十二:地图渐变效果
为地图添加渐变效果,可以增强地图的可视化效果。
// 初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图渐变效果'
},
tooltip: {
trigger: 'item'
},
// ...
series: [{
type: 'map',
map: 'china',
// ...
itemStyle: {
areaColor: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0, color: '#0f378a' // 0% 处的颜色
}, {
offset: 1, color: '#000' // 100% 处的颜色
}],
globalCoord: false // 缺省为 false
}
}
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例十三:地图阴影效果
为地图添加阴影效果,可以使地图看起来更加立体。
// 初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图阴影效果'
},
tooltip: {
trigger: 'item'
},
// ...
series: [{
type: 'map',
map: 'china',
// ...
itemStyle: {
shadowBlur: 10,
shadowColor: 'rgba(120, 36, 50, 0.5)',
shadowOffsetY: 5
}
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例十四:地图标签
在地图上添加标签,可以显示更详细的地理信息。
// 初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图标签'
},
tooltip: {
trigger: 'item'
},
// ...
series: [{
type: 'map',
map: 'china',
// ...
label: {
show: true,
formatter: '{b}'
}
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例十五:地图缩略图
在地图右侧添加缩略图,方便用户快速查看地图的整体布局。
// 初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图缩略图'
},
tooltip: {
trigger: 'item'
},
// ...
series: [{
type: 'map',
map: 'china',
// ...
visualMap: {
show: false,
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'], // 文本,默认为数值文本
calculable: true
}
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例十六:地图数据筛选
通过筛选地图数据,只展示符合条件的区域。
// 初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图数据筛选'
},
tooltip: {
trigger: 'item'
},
// ...
series: [{
type: 'map',
map: 'china',
// ...
data: [
{name: '北京', value: 100},
{name: '上海', value: 50},
// ...
]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
// 为地图添加筛选事件
myChart.on('click', function (params) {
if (params.name === '北京') {
myChart.setOption({
series: [{
data: [{name: '北京', value: 100}]
}]
});
}
});
案例十七:地图层级切换
在地图上切换不同层级的数据,例如国家、省份、城市等。
// 初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图层级切换'
},
tooltip: {
trigger: 'item'
},
// ...
series: [{
type: 'map',
map: 'china',
// ...
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
// 为地图添加层级切换事件
myChart.on('click', function (params) {
if (params.name === '北京') {
myChart.setOption({
series: [{
type: 'map',
map: 'beijing',
// ...
}]
});
}
});
案例十八:地图数据聚合
将地图上相邻的多个区域合并为一个区域,以便更清晰地展示数据。
// 初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图数据聚合'
},
tooltip: {
trigger: 'item'
},
// ...
series: [{
type: 'map',
map: 'china',
// ...
data: [
{name: '北京', value: 100},
{name: '天津', value: 50},
// ...
],
// ...
label: {
show: true,
formatter: '{b}'
},
// ...
emphasis: {
label: {
show: true
}
}
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例十九:地图标签动画
为地图标签添加动画效果,使地图更具有动态感。
// 初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图标签动画'
},
tooltip: {
trigger: 'item'
},
// ...
series: [{
type: 'map',
map: 'china',
// ...
label: {
show: true,
formatter: '{b}',
animate: true
}
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例二十:地图点击事件
为地图添加点击事件,当用户点击某个区域时,可以执行特定的操作。
// 初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图点击事件'
},
tooltip: {
trigger: 'item'
},
// ...
series: [{
type: 'map',
map: 'china',
// ...
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
// 为地图添加点击事件
myChart.on('click', function (params) {
if (params.name === '北京') {
alert('北京');
}
});
以上就是20个ECharts地图图表制作实用案例,希望对你有所帮助。在实际应用中,你可以根据需要调整案例中的代码,以适应不同的场景。祝你在地图图表制作的道路上越走越远!