什么是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 4let myChart = null onMounted(()=>{ myChart = echarts.init(target.value) }) - 
构建 option 配置对象
1 2const options = { } - 
通过 实例.setOption(option) 挂载到对应盒子上
1myChart.setOption(options) 
图表配置
柱形图
 | 
 | 
雷达图
 | 
 | 
环形图
 | 
 | 
关系图
 | 
 | 
词云图
- 
需要安装依赖后导入
import("echarts-wordcloud")注意:借助浏览器的插件在Nuxt框架下需要判断让它在客户端导入,不然会报错!
 
 | 
 | 
封装composable用于操作echarts生成
- 按需加载插件,节省初始包体积。
 - 避免 SSR 报错(
import仅在客户端执行)。 - onMounted:监听 resize 事件,onBeforeUnmount:解除 resize 监听,释放图表实例
 - 销毁 ECharts 实例:释放资源,避免内存不断积累。
 - 正确时机:组件即将卸载时执行,最适合做 cleanup。
 - markRaw 处理 chartInstance,避免将 ECharts 实例做响应式包裹,提升性能,避免不必要的跟踪。
 
 | 
 | 
用nuxt3写echarts开发注意事项
SSR渲染问题
- 图表组件依赖 DOM 和浏览器环境,不能 SSR,用 
<ClientOnly>包裹图表部分,完美规避服务端渲染的问题。