ECharts 是一个使用 JavaScript 实现的开源可视化库,它能够帮助开发者轻松地将数据通过图表展示出来。其中,ECharts 地图图表功能因其直观性和实用性而备受关注。对于新手来说,掌握 ECharts 地图图表并不是一件难事,只需跟随以下 10 个实用案例,你将轻松入门。
案例一:中国地图省份分布
主题句: 通过 ECharts 制作中国地图,展示各个省份的分布情况。
代码示例:
// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入中国地图数据
require('echarts/map/js/china');
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: 300},
{name: '浙江', value: 800},
// ... 其他省份数据
]
}]
};
myChart.setOption(option);
案例二:世界地图国家分布
主题句: 制作世界地图,展示各国的人口分布情况。
代码示例:
require('echarts/map/js/world');
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '世界地图国家分布'
},
tooltip: {
trigger: 'item',
formatter: '{b}: {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: 'China', value: 1000},
{name: 'India', value: 800},
// ... 其他国家数据
]
}]
};
myChart.setOption(option);
案例三:省市县级地图
主题句: 创建一个省市县级联动的地图,展示不同级别地区的经济指标。
代码示例:
require('echarts/map/js/china');
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '省市县级地图'
},
tooltip: {
trigger: 'item',
formatter: '{b}: {c}'
},
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: 300},
{name: '广东省深圳市', value: 200},
// ... 其他省市县级数据
]
}]
};
myChart.setOption(option);
案例四:行政区划缩放
主题句: 通过点击地图区域,实现行政区划的缩放展示。
代码示例:
require('echarts/map/js/china');
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '行政区划缩放'
},
tooltip: {
trigger: 'item',
formatter: '{b}: {c}'
},
series: [{
name: '中国',
type: 'map',
mapType: 'china',
label: {
show: true
},
data: [
{name: '广东省', selected: true},
// ... 其他省份数据
]
}]
};
myChart.on('click', function (params) {
if (params.componentType === 'series') {
myChart.dispatchAction({
type: 'select',
name: params.name
});
}
});
myChart.setOption(option);
案例五:地图上的动态标记
主题句: 在地图上动态添加标记,展示特定地点的信息。
代码示例:
require('echarts/map/js/china');
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '地图上的动态标记'
},
tooltip: {
trigger: 'item'
},
series: [{
name: '中国',
type: 'map',
mapType: 'china',
label: {
show: true
},
data: [
{name: '广东省', value: 300},
// ... 其他省份数据
],
markPoint: {
symbolSize: 50,
data: [
{name: '深圳市', coord: [114.05, 22.52]}
// ... 其他标记数据
]
}
}]
};
myChart.setOption(option);
案例六:地图上的线与面
主题句: 使用地图上的线与面来展示交通路线或行政区划边界。
代码示例:
require('echarts/map/js/china');
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '地图上的线与面'
},
tooltip: {
trigger: 'item'
},
series: [{
name: '中国',
type: 'map',
mapType: 'china',
label: {
show: true
},
data: [
{name: '广东省', value: 300},
// ... 其他省份数据
],
lines: [{
type: ' polyline',
coordinateSystem: 'geo',
data: [
[[113.33, 23.13], [114.05, 22.52], [114.25, 21.75]]
// ... 其他路线数据
]
}]
}]
};
myChart.setOption(option);
案例七:地图上的热力图
主题句: 利用热力图在地图上展示温度或人口密度分布。
代码示例:
require('echarts/map/js/china');
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '地图上的热力图'
},
tooltip: {
trigger: 'item',
formatter: '{b}: {c}'
},
visualMap: {
min: 0,
max: 1000,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [{
name: '中国',
type: 'heatmap',
coordinateSystem: 'geo',
data: [
{name: '广东省', value: [114.05, 22.52, 300]},
// ... 其他热力图数据
]
}]
};
myChart.setOption(option);
案例八:地图上的饼图
主题句: 在地图上展示每个省份的饼图,用于数据对比。
代码示例:
require('echarts/map/js/china');
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '地图上的饼图'
},
tooltip: {
trigger: 'item'
},
series: [{
name: '中国',
type: 'pie',
center: [50, 50],
radius: ['30%', '50%'],
label: {
formatter: '{b}: {c}'
},
data: [
{name: '广东省', value: 300},
// ... 其他省份数据
]
}]
};
myChart.setOption(option);
案例九:地图上的柱状图
主题句: 使用地图上的柱状图来展示不同省份的经济总量。
代码示例:
require('echarts/map/js/china');
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '地图上的柱状图'
},
tooltip: {
trigger: 'item',
formatter: '{b}: {c}'
},
visualMap: {
min: 0,
max: 1000,
left: 'left',
top: 'bottom',
text: ['高','低'],
calculable: true
},
series: [{
name: '中国',
type: 'bar',
coordinateSystem: 'geo',
data: [
{name: '广东省', value: 300},
// ... 其他省份数据
]
}]
};
myChart.setOption(option);
案例十:地图上的雷达图
主题句: 在地图上使用雷达图来展示省份的经济发展综合指标。
代码示例:
require('echarts/map/js/china');
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '地图上的雷达图'
},
tooltip: {
trigger: 'item'
},
radar: {
indicator: [
{ name: 'GDP', max: 1000 },
{ name: '人口', max: 1000 },
// ... 其他指标
]
},
series: [{
name: '中国',
type: 'radar',
data: [
{value: [300, 400, 500]}
// ... 其他省份数据
]
}]
};
myChart.setOption(option);
通过以上 10 个实用案例,相信你已经对 ECharts 地图图表有了初步的认识。在实际应用中,你可以根据自己的需求选择合适的图表类型,并通过调整参数来达到最佳效果。祝你学习愉快!
