ECharts是一款功能强大的可视化库,它能够帮助开发者轻松创建各种数据可视化图表。其中,地图图表是ECharts的一个特色功能,它能够将地理信息数据以直观、生动的方式呈现出来。本文将为你带来30个实用案例,通过这些案例,你将学会如何玩转ECharts的可视化地图设计。
案例一:中国地图基本展示
首先,让我们从最简单的中国地图基本展示开始。通过ECharts的地图插件,你可以轻松实现中国地图的展示,并添加一些基本的标注。
// 基于准备好的dom,初始化echarts实例
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: Math.round(Math.random() * 1000)},
// ... 其他省份数据
]
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例二:世界地图展示
接下来,我们来看如何使用ECharts展示世界地图。这需要使用ECharts提供的world地图类型。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '世界地图展示'
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '世界',
type: 'map',
mapType: 'world',
label: {
show: true
},
data: [
{name: '中国', value: Math.round(Math.random() * 1000)},
// ... 其他国家数据
]
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例三:自定义地图
ECharts还支持自定义地图,你可以通过mapType属性指定一个自定义地图类型。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '自定义地图'
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '自定义地图',
type: 'map',
mapType: 'custom',
label: {
show: true
},
data: [
{name: '北京', value: Math.round(Math.random() * 1000)},
// ... 其他地区数据
],
// 自定义地图的路径
map: 'path/to/your/custom-map.json'
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例四:地图热力图
热力图是一种常见的地图可视化方式,它能够通过颜色深浅来表示数据的密集程度。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图热力图'
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '热力图',
type: 'heatmap',
coordinateSystem: 'geo',
data: [
{name: '北京', value: [116.46, 39.92]},
// ... 其他地区数据
]
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例五:地图散点图
散点图是一种将地理信息数据以散点形式展示的地图图表。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图散点图'
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '散点图',
type: 'scatter',
coordinateSystem: 'geo',
data: [
{name: '北京', value: [116.46, 39.92]},
// ... 其他地区数据
]
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例六:地图折线图
折线图是一种将地理信息数据以折线形式展示的地图图表。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图折线图'
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '折线图',
type: 'line',
coordinateSystem: 'geo',
data: [
{name: '北京', value: [116.46, 39.92]},
// ... 其他地区数据
]
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例七:地图柱状图
柱状图是一种将地理信息数据以柱状形式展示的地图图表。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图柱状图'
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '柱状图',
type: 'bar',
coordinateSystem: 'geo',
data: [
{name: '北京', value: [116.46, 39.92]},
// ... 其他地区数据
]
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例八:地图饼图
饼图是一种将地理信息数据以饼状形式展示的地图图表。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图饼图'
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '饼图',
type: 'pie',
coordinateSystem: 'geo',
data: [
{name: '北京', value: [116.46, 39.92]},
// ... 其他地区数据
]
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例九:地图雷达图
雷达图是一种将地理信息数据以雷达形式展示的地图图表。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图雷达图'
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '雷达图',
type: 'radar',
coordinateSystem: 'geo',
data: [
{name: '北京', value: [116.46, 39.92]},
// ... 其他地区数据
]
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例十:地图地图
地图可以嵌套地图,实现更复杂的地理信息展示。
// 基于准备好的dom,初始化echarts实例
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: Math.round(Math.random() * 1000)},
// ... 其他省份数据
],
// 嵌套地图
children: [
{
name: '北京市',
type: 'map',
mapType: 'beijing',
label: {
show: true
},
data: [
{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'
},
series: [
{
name: '动画效果',
type: 'map',
mapType: 'china',
label: {
show: true
},
data: [
{name: '北京', value: Math.round(Math.random() * 1000)},
// ... 其他省份数据
],
animation: true
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例十二:地图交互效果
ECharts支持地图交互效果,例如点击地图区域、悬停显示信息等。
// 基于准备好的dom,初始化echarts实例
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: Math.round(Math.random() * 1000)},
// ... 其他省份数据
],
// 交互效果
emphasis: {
label: {
show: true
}
}
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例十三:地图自定义颜色
你可以自定义地图的颜色,使地图的展示更加符合你的需求。
// 基于准备好的dom,初始化echarts实例
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: Math.round(Math.random() * 1000)},
// ... 其他省份数据
],
// 自定义颜色
itemStyle: {
areaColor: '#ff7f50'
}
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例十四:地图自定义标签
你可以自定义地图的标签,使其更加符合你的需求。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '地图自定义标签'
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '自定义标签',
type: 'map',
mapType: 'china',
label: {
show: true,
formatter: '{b}: {c}'
},
data: [
{name: '北京', value: Math.round(Math.random() * 1000)},
// ... 其他省份数据
]
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例十五:地图自定义地图样式
ECharts支持自定义地图样式,你可以通过mapStyle属性来设置。
// 基于准备好的dom,初始化echarts实例
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: Math.round(Math.random() * 1000)},
// ... 其他省份数据
],
// 自定义样式
mapStyle: {
areas: [
{
name: '北京',
itemStyle: {
color: '#ff7f50'
}
}
]
}
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例十六:地图数据聚合
ECharts支持地图数据聚合,可以将多个数据点聚合成一个点。
// 基于准备好的dom,初始化echarts实例
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: Math.round(Math.random() * 1000)},
// ... 其他省份数据
],
// 数据聚合
emphasis: {
label: {
show: true
}
},
// 聚合半径
roam: true,
zoom: 1.2,
scaleLimit: {
min: 1,
max: 2
}
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例十七:地图缩放与平移
ECharts支持地图缩放与平移,用户可以通过鼠标滚轮或拖动地图来实现。
// 基于准备好的dom,初始化echarts实例
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: Math.round(Math.random() * 1000)},
// ... 其他省份数据
],
// 缩放与平移
roam: true
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例十八:地图多级联动
ECharts支持地图多级联动,可以实现点击一个地区,展开下级地区的功能。
// 基于准备好的dom,初始化echarts实例
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: Math.round(Math.random() * 1000)},
// ... 其他省份数据
],
// 多级联动
expandAndCollapse: true,
levels: [
{
// 第一级地区
name: '北京',
label: {
show: true
}
},
{
// 第二级地区
name: '北京市',
label: {
show: true
}
}
]
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例十九:地图数据筛选
ECharts支持地图数据筛选,你可以通过点击地图区域来筛选数据。
// 基于准备好的dom,初始化echarts实例
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: Math.round(Math.random() * 1000)},
// ... 其他省份数据
],
// 数据筛选
select: {
selectedMode: 'multiple'
}
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
案例二十:地图数据排序
ECharts支持地图数据排序,你可以通过点击地图区域