在信息爆炸的时代,数据可视化成为了数据分析和传达的重要手段。ECharts,作为一款功能强大的前端图表库,在地图图表的制作上尤为出色。通过ECharts,我们可以轻松地将数据与地图结合,实现简单直观的数据可视化。本文将分享30个实战案例,带你深入了解如何使用ECharts制作地图图表。
1. 基础地图展示
案例描述:展示全球或特定区域的地图,如世界地图、中国地图等。
实现步骤:
- 引入ECharts地图插件。
- 设置地图数据。
- 初始化地图图表。
// 引入ECharts主模块和地图模块
var echarts = require('echarts/lib/echarts');
require('echarts/lib/chart/map');
require('echarts/map/js/world');
// 初始化地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
series: [{
type: 'map',
mapType: 'world',
roam: true
}]
};
myChart.setOption(option);
2. 省市区地图展示
案例描述:展示中国各省份、城市或区县的地图。
实现步骤:
- 引入ECharts地图插件。
- 设置地图数据。
- 初始化地图图表。
// 引入ECharts主模块和地图模块
var echarts = require('echarts/lib/echarts');
require('echarts/lib/chart/map');
require('echarts/map/js/china');
// 初始化地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
series: [{
type: 'map',
mapType: 'china',
roam: true
}]
};
myChart.setOption(option);
3. 地图热力图
案例描述:展示地图上的热点数据,如人口密度、温度分布等。
实现步骤:
- 引入ECharts地图插件。
- 设置地图数据和热力数据。
- 初始化地图图表。
// 引入ECharts主模块和地图模块
var echarts = require('echarts/lib/echarts');
require('echarts/lib/chart/map');
require('echarts/map/js/china');
// 初始化地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
series: [{
type: 'map',
mapType: 'china',
data: [{
name: '北京',
value: 100
}, {
name: '上海',
value: 80
}],
itemStyle: {
normal: {
label: {
show: true
}
},
emphasis: {
label: {
show: true
}
}
}
}]
};
myChart.setOption(option);
4. 地图散点图
案例描述:展示地图上的散点数据,如城市分布、气象站点等。
实现步骤:
- 引入ECharts地图插件。
- 设置地图数据和散点数据。
- 初始化地图图表。
// 引入ECharts主模块和地图模块
var echarts = require('echarts/lib/echarts');
require('echarts/lib/chart/map');
require('echarts/map/js/china');
// 初始化地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
series: [{
type: 'map',
mapType: 'china',
data: [{
name: '北京',
value: [116.46, 39.92]
}, {
name: '上海',
value: [121.47, 31.23]
}]
}]
};
myChart.setOption(option);
5. 地图折线图
案例描述:展示地图上的折线数据,如气温变化、经济指标等。
实现步骤:
- 引入ECharts地图插件。
- 设置地图数据和折线数据。
- 初始化地图图表。
// 引入ECharts主模块和地图模块
var echarts = require('echarts/lib/echarts');
require('echarts/lib/chart/map');
require('echarts/map/js/china');
// 初始化地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
series: [{
type: 'map',
mapType: 'china',
data: [{
name: '北京',
value: [116.46, 39.92, 10]
}, {
name: '上海',
value: [121.47, 31.23, 15]
}]
}]
};
myChart.setOption(option);
6. 地图饼图
案例描述:展示地图上的饼状数据,如市场份额、人口比例等。
实现步骤:
- 引入ECharts地图插件。
- 设置地图数据和饼图数据。
- 初始化地图图表。
// 引入ECharts主模块和地图模块
var echarts = require('echarts/lib/echarts');
require('echarts/lib/chart/map');
require('echarts/map/js/china');
// 初始化地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
series: [{
type: 'map',
mapType: 'china',
data: [{
name: '北京',
value: [116.46, 39.92, 0.3]
}, {
name: '上海',
value: [121.47, 31.23, 0.2]
}]
}]
};
myChart.setOption(option);
7. 地图多维度图表
案例描述:将多种图表类型结合,展示地图上的多维数据。
实现步骤:
- 引入ECharts地图插件。
- 设置地图数据、多维数据。
- 初始化地图图表。
// 引入ECharts主模块和地图模块
var echarts = require('echarts/lib/echarts');
require('echarts/lib/chart/map');
require('echarts/map/js/china');
// 初始化地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
series: [{
type: 'map',
mapType: 'china',
data: [{
name: '北京',
value: [116.46, 39.92, 10, 0.3]
}, {
name: '上海',
value: [121.47, 31.23, 15, 0.2]
}]
}]
};
myChart.setOption(option);
8. 地图自定义样式
案例描述:自定义地图颜色、边框、阴影等样式。
实现步骤:
- 引入ECharts地图插件。
- 设置地图数据、样式数据。
- 初始化地图图表。
// 引入ECharts主模块和地图模块
var echarts = require('echarts/lib/echarts');
require('echarts/lib/chart/map');
require('echarts/map/js/china');
// 初始化地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
series: [{
type: 'map',
mapType: 'china',
itemStyle: {
normal: {
borderColor: '#fff',
areaColor: '#f4f4f4'
},
emphasis: {
borderColor: '#fff',
areaColor: '#f0f0f0'
}
}
}]
};
myChart.setOption(option);
9. 地图动画效果
案例描述:为地图添加动画效果,如地图缩放、数据动态展示等。
实现步骤:
- 引入ECharts地图插件。
- 设置地图数据、动画效果数据。
- 初始化地图图表。
// 引入ECharts主模块和地图模块
var echarts = require('echarts/lib/echarts');
require('echarts/lib/chart/map');
require('echarts/map/js/china');
// 初始化地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
series: [{
type: 'map',
mapType: 'china',
animation: true,
data: [{
name: '北京',
value: [116.46, 39.92, 10]
}, {
name: '上海',
value: [121.47, 31.23, 15]
}]
}]
};
myChart.setOption(option);
10. 地图交互效果
案例描述:为地图添加交互效果,如点击、悬停、拖拽等。
实现步骤:
- 引入ECharts地图插件。
- 设置地图数据、交互效果数据。
- 初始化地图图表。
// 引入ECharts主模块和地图模块
var echarts = require('echarts/lib/echarts');
require('echarts/lib/chart/map');
require('echarts/map/js/china');
// 初始化地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
series: [{
type: 'map',
mapType: 'china',
label: {
normal: {
show: true
},
emphasis: {
show: true
}
},
data: [{
name: '北京',
value: [116.46, 39.92, 10]
}, {
name: '上海',
value: [121.47, 31.23, 15]
}]
}]
};
myChart.setOption(option);
11. 地图多层级展示
案例描述:展示地图的多层级数据,如城市、区县、街道等。
实现步骤:
- 引入ECharts地图插件。
- 设置地图数据、多层级数据。
- 初始化地图图表。
// 引入ECharts主模块和地图模块
var echarts = require('echarts/lib/echarts');
require('echarts/lib/chart/map');
require('echarts/map/js/china');
// 初始化地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
series: [{
type: 'map',
mapType: 'china',
data: [{
name: '北京',
value: [116.46, 39.92, 10, 0.3]
}, {
name: '上海',
value: [121.47, 31.23, 15, 0.2]
}]
}]
};
myChart.setOption(option);
12. 地图多数据系列展示
案例描述:在地图上同时展示多个数据系列,如人口、GDP、人均收入等。
实现步骤:
- 引入ECharts地图插件。
- 设置地图数据、多个数据系列数据。
- 初始化地图图表。
// 引入ECharts主模块和地图模块
var echarts = require('echarts/lib/echarts');
require('echarts/lib/chart/map');
require('echarts/map/js/china');
// 初始化地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
series: [{
type: 'map',
mapType: 'china',
data: [{
name: '北京',
value: [116.46, 39.92, 10, 0.3]
}, {
name: '上海',
value: [121.47, 31.23, 15, 0.2]
}]
}, {
type: 'map',
mapType: 'china',
data: [{
name: '北京',
value: [116.46, 39.92, 5, 0.2]
}, {
name: '上海',
value: [121.47, 31.23, 10, 0.3]
}]
}]
};
myChart.setOption(option);
13. 地图数据聚合
案例描述:将地图上的多个数据点聚合成一个点,如人口密度、气象站点等。
实现步骤:
- 引入ECharts地图插件。
- 设置地图数据、聚合数据。
- 初始化地图图表。
// 引入ECharts主模块和地图模块
var echarts = require('echarts/lib/echarts');
require('echarts/lib/chart/map');
require('echarts/map/js/china');
// 初始化地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
series: [{
type: 'map',
mapType: 'china',
data: [{
name: '北京',
value: [116.46, 39.92, 100]
}, {
name: '上海',
value: [121.47, 31.23, 80]
}],
// 聚合配置
emphasis: {
scale: 1.5,
label: {
show: true
}
}
}]
};
myChart.setOption(option);
14. 地图数据筛选
案例描述:根据用户输入的筛选条件,展示符合条件的数据。
实现步骤:
- 引入ECharts地图插件。
- 设置地图数据、筛选数据。
- 初始化地图图表。
// 引入ECharts主模块和地图模块
var echarts = require('echarts/lib/echarts');
require('echarts/lib/chart/map');
require('echarts/map/js/china');
// 初始化地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
series: [{
type: 'map',
mapType: 'china',
data: [{
name: '北京',
value: [116.46, 39.92, 100]
}, {
name: '上海',
value: [121.47, 31.23, 80]
}]
}]
};
// 筛选数据
function filterData(keywords) {
var data = option.series[0].data;
return data.filter(function(item) {
return item.name.indexOf(keywords) > -1;
});
}
// 绑定筛选事件
myChart.on('click', function(params) {
var keywords = params.name;
var filteredData = filterData(keywords);
myChart.setOption({
series: [{
data: filteredData
}]
});
});
myChart.setOption(option);
15. 地图数据导出
案例描述:将地图上的数据导出为Excel、CSV等格式。
实现步骤:
- 引入ECharts地图插件。
- 设置地图数据、导出数据。
- 初始化地图图表。
// 引入ECharts主模块和地图模块
var echarts = require('echarts/lib/echarts');
require('echarts/lib/chart/map');
require('echarts/map/js/china');
// 初始化地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
series: [{
type: 'map',
mapType: 'china',
data: [{
name: '北京',
value: [116.46, 39.92, 100]
}, {
name: '上海',
value: [121.47, 31.23, 80]
}]
}]
};
// 导出数据
function exportData() {
var data = option.series[0].data;
var header = ['名称', '经度', '纬度', '值'];
var rows = data.map(function(item) {
return [item.name, item.value[0], item.value[1], item.value[2]];
});
var csvContent = header.join(',') + '\n' + rows.map(function(row) {
return row.join(',');
}).join('\n');
var blob = new Blob([csvContent], {type: 'text/csv;charset=utf-8'});
var link = document.createElement('a');
var url = URL.createObjectURL(blob);
link.href = url;
link.download = 'map_data.csv';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
myChart.setOption(option);
16. 地图数据可视化分析
案例描述:通过地图数据可视化分析,发现数据中的规律和趋势。
实现步骤:
- 引入ECharts地图插件。
- 设置地图数据、分析指标。
- 初始化地图图表。
// 引入ECharts主模块和地图模块
var echarts = require('echarts/lib/echarts');
require('echarts/lib/chart/map');
require('echarts/map/js/china');
// 初始化地图图表
var myChart = echarts.init(document.getElementById('main'));
var option = {
series: [{
type: 'map',
mapType: 'china',
data: [{
name: '北京',
value: [116.46, 39.92, 100]
}, {
name: '上海',
value: [121.47, 31.23, 80]
}]
}]
};
// 分析指标
function analyzeData(data) {
// 分析数据,计算平均值、最大值、最小值等指标
// ...
return analyzedData;
}
// 绑定分析事件
myChart.on('click', function(params) {
var data = option.series[0].data;
var analyzedData = analyzeData(data);
// ...
});
myChart.setOption(option);
17. 地图数据与表格结合
案例描述:将地图数据与表格结合,展示更详细的信息。
实现步骤:
- 引入ECharts地图插件和表格插件。
- 设置地图数据、表格数据。
- 初始化地图图表和表格。
”`javascript // 引入ECharts主模块、地图插件和表格插件 var echarts = require(‘echarts/lib/echarts’); require(‘echarts/lib/chart/map’); require(‘echarts/lib/chart/table’); require(‘echarts/map/js/china’);
// 初始化地图图表 var myChart = echarts.init(document.getElementById(‘main’)); var option = {
series: [{
type: 'map',
mapType: 'china',
data: [{
name: '北京',
value: [116.46, 39.92, 100]
}, {
name: '上海',
value: [121.47, 31.23, 80]
}]
}]
}; // 初始化表格 var tableChart = echarts.init(document.getElementById(‘table’));
// 绑定点击事件,将数据传递给表格 myChart.on(‘click’, function(params) {
var data = option.series[0].data;
var selectedData = data.filter(function(item) {
return item.name === params.name;
});
tableChart.setOption({
series: [{
type: 'table',
