在数据可视化领域,ECharts 是一款功能强大、使用便捷的图表库。它不仅支持 2D 图表,还提供了 3D 图表的功能,让数据展示更加生动和直观。对于新手来说,掌握 ECharts 3D 图表制作是提升数据可视化能力的重要一步。本文将带你轻松学会 ECharts 3D 图表制作,让你打造出视觉冲击力强的数据可视化作品。
一、ECharts 3D 图表简介
ECharts 3D 图表是基于 ECharts 图表库扩展而来,它支持多种 3D 图表类型,如 3D 柱状图、3D 饼图、3D 地图等。通过 ECharts 3D 图表,我们可以将数据以更加立体和直观的方式呈现出来,增强视觉效果。
二、ECharts 3D 图表制作步骤
1. 准备工作
首先,你需要确保你的项目中已经引入了 ECharts 库。可以通过以下代码实现:
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.min.js"></script>
2. 创建 HTML 结构
在 HTML 文件中,创建一个用于展示图表的容器元素,并为其设置相应的宽度和高度。
<div id="main" style="width: 600px;height:400px;"></div>
3. 初始化 ECharts 实例
在 JavaScript 中,使用以下代码初始化 ECharts 实例:
var myChart = echarts.init(document.getElementById('main'));
4. 配置 ECharts 3D 图表
在 ECharts 实例的 setOption 方法中,配置 ECharts 3D 图表的各项参数。以下是一个 3D 柱状图的示例:
var option = {
tooltip: {},
visualMap: {
max: 200,
inRange: {
color: ['#313695', '#4575b4', '#74add1', '#b3cde3', '#f1e2cc', '#f698a4', '#f59090', '#f5665c', '#f5343f']
}
},
xAxis3D: {
type: 'category',
data: ['A', 'B', 'C', 'D', 'E', 'F', 'G']
},
yAxis3D: {
type: 'value'
},
zAxis3D: {
type: 'value'
},
series: [{
type: 'bar',
data: [
[0, 0, 100],
[1, 0, 120],
[2, 0, 140],
[3, 0, 130],
[4, 0, 150],
[5, 0, 160],
[6, 0, 170]
]
}]
};
5. 渲染图表
最后,使用以下代码将配置好的图表渲染到页面中:
myChart.setOption(option);
三、实战案例:3D 地图
以下是一个使用 ECharts 3D 地图展示全球疫情数据的示例:
var option = {
title: {
text: '全球疫情数据'
},
tooltip: {
trigger: 'item',
formatter: function (params) {
return params.name + ' : ' + params.value[2];
}
},
visualMap: {
min: 0,
max: 1000,
left: 'left',
top: 'bottom',
text: ['高', '低'], // 文本,默认为数值文本
calculable: true
},
geo3D: {
map: 'world',
roam: true,
label: {
show: false,
emphasis: {
show: false
}
},
itemStyle: {
color: '#323c48',
opacity: 0.6
},
emphasis: {
itemStyle: {
color: '#2a333d'
}
}
},
series: [{
type: 'scatter3D',
coordinateSystem: 'geo3D',
data: [
[116.46, 39.92, 100],
[121.47, 31.23, 200],
// ... 其他数据
],
symbolSize: 10,
symbol: 'circle',
itemStyle: {
color: '#f4e925',
borderColor: '#f4e925',
borderWidth: 1
}
}]
};
通过以上步骤,你可以轻松地制作出各种 ECharts 3D 图表,让你的数据可视化作品更具视觉冲击力。祝你学习愉快!
