什么是Echarts
ECharts(全称:Enterprise Charts)是由百度开源的一个基于 JavaScript 的可视化图表库,专门用于构建交互性强、表现丰富的数据可视化图表。
它能做什么?
ECharts 提供了多种常用和高级图表类型,适用于数据分析、仪表盘、报表系统、可视化大屏等场景,例如:
- 折线图(line)
- 柱状图(bar)
- 饼图(pie)
- 散点图(scatter)
- 地图(map,支持中国地图和世界地图)
- 仪表盘(gauge)
- 热力图(heatmap)
- 自定义图形(graph、tree、sunburst 等)
它的核心特点:
特性 | 说明 |
---|---|
高性能 | 基于 Canvas 渲染,适合大数据量可视化 |
响应式 | 能适应不同屏幕尺寸,自适应缩放 |
交互性强 | 支持 tooltip、点击事件、缩放、图例控制等 |
主题丰富 | 提供多种主题,也可自定义 |
开源免费 | 使用 Apache-2.0 协议,商业项目也可免费用 |
安装方式(前端项目):
如果你用的是 Nuxt、Vue、React 等框架,常见引入方式有两种:
npm/yarn 安装:
|
|
直接在 HTML 中引用(CDN):
|
|
其他类似图表库
虽然 ECharts 很强大,但近几年市面上也涌现了不少其它优秀的图表库,例如:
-
AntV/G2 系列:蚂蚁金服出品,视觉效果更现代,支持更多数据关系分析,且生态体系逐步完善。
-
D3.js:功能灵活,适合自定义程度非常高的可视化开发,不过上手难度和开发成本较高。
-
Highcharts、Chart.js:Highcharts 商业授权较为严格,而 Chart.js 则适合中小型数据量和基本交互需求。
如何写一个图表
图表步骤
-
初始化 echarts 实例
1 2 3 4
let myChart = null onMounted(()=>{ myChart = echarts.init(target.value) })
-
构建 option 配置对象
1 2
const options = { }
-
通过 实例.setOption(option) 挂载到对应盒子上
1
myChart.setOption(options)
图表配置
柱形图
|
|
雷达图
|
|
环形图
|
|
关系图
|
|
词云图
-
需要安装依赖后导入
import("echarts-wordcloud")
注意:借助浏览器的插件在Nuxt框架下需要判断让它在客户端导入,不然会报错!
|
|
封装composable用于操作echarts生成
-
按需加载插件,节省初始包体积。
-
避免 SSR 报错(
import
仅在客户端执行)。 -
清理监听器:避免内存泄漏。
-
销毁 ECharts 实例:释放资源,避免内存不断积累。
-
正确时机:组件即将卸载时执行,最适合做 cleanup。
|
|
用nuxt3写echarts开发注意事项
SSR渲染问题
- 图表组件依赖 DOM 和浏览器环境,不能 SSR,用
<ClientOnly>
包裹图表部分,完美规避服务端渲染的问题。