2、ECharts基础回顾:库的引入方式、基本配置项结构与渲染器选择

在搭建实时监控大屏之前,必须牢固掌握 ECharts 的核心基础。本节将系统回顾 ECharts 的三种引入方式、标准配置项(option)的层级结构,以及 Canvas 与 SVG 渲染器的选型原则,为后续的数据刷新与 KPI 看板配置打下坚实的技术根基。

2.1 ECharts 库的引入方式

ECharts 支持三种主流引入方式,适用于不同的项目场景:

引入方式 适用场景 优点 缺点
CDN 引入 快速原型、静态页面、教学演示 零配置、加载快、无需构建工具 依赖网络、无法按需打包
npm 安装 Vue / React 等工程化项目 模块化管理、按需引入、Tree Shaking 需要构建工具(Webpack / Vite)
离线下载 内网部署、安全要求高的监控大屏 完全离线、版本可控 手动更新、文件体积较大

2.1.1 CDN 引入(推荐用于本课程)

本课程所有示例均采用 CDN 方式,便于快速上手。在 HTML 的 <head> 或 <body> 末尾添加以下 <script> 标签:

<!-- 引入 ECharts 核心库(推荐使用 5.x 最新稳定版) -->
<script src="https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js"></script>
版本锁定建议: 生产环境建议锁定具体版本号(如 echarts@5.5.0),避免因 CDN 自动更新导致兼容性问题。本课程统一使用 echarts@5 系列。

2.1.2 npm 安装(工程化项目)

若你使用 Vue / React 等框架,推荐通过 npm 安装并配合按需引入:

# 安装 ECharts
npm install echarts --save

# 在组件中按需引入(以折线图为例)
import * as echarts from 'echarts/core';
import { LineChart } from 'echarts/charts';
import { TitleComponent, TooltipComponent, GridComponent } from 'echarts/components';
import { CanvasRenderer } from 'echarts/renderers';

echarts.use([LineChart, TitleComponent, TooltipComponent, GridComponent, CanvasRenderer]);

2.1.3 离线下载

从 ECharts 官网下载完整构建包,或通过 echarts/dist 目录获取,直接使用 <script> 标签引入本地文件:

<script src="./lib/echarts.min.js"></script>
注意: 离线包体积较大(约 1MB),建议仅在无法访问外网的内网环境使用。对于大屏项目,优先考虑 CDN 或 npm 按需引入。

2.2 基本配置项(option)结构

ECharts 的所有图表均通过一个统一的 JavaScript 对象 option 进行配置。理解其层级结构是掌握 ECharts 的关键。以下是一个标准折线图的 option 结构:

// 1. 初始化实例
const myChart = echarts.init(document.getElementById('main'));

// 2. 定义配置项
const option = {
  // —— 全局属性 ——
  title: {
    text: '实时CPU使用率',
    left: 'center'
  },
  tooltip: {
    trigger: 'axis'
  },
  legend: {
    data: ['CPU使用率']
  },

  // —— 坐标系 ——
  xAxis: {
    type: 'category',
    data: ['08:00', '08:05', '08:10', '08:15', '08:20']
  },
  yAxis: {
    type: 'value',
    min: 0,
    max: 100
  },

  // —— 数据系列 ——
  series: [
    {
      name: 'CPU使用率',
      type: 'line',
      data: [45, 62, 58, 79, 85],
      smooth: true
    }
  ]
};

// 3. 渲染图表
myChart.setOption(option);

option 的核心层级可归纳为以下结构:

option 层级速记:
option → title / tooltip / legend / grid(全局组件)
    → xAxis / yAxis / radar / polar(坐标系)
    → series[ ](数据系列,核心)
    → visualMap / dataZoom / toolbox(交互组件)
ECharts option 层级结构图 option title tooltip legend grid xAxis yAxis radar / polar series[ ] type / data / encode / itemStyle visualMap dataZoom toolbox 说明:series 是 option 的核心,所有图表数据与样式均在此定义;坐标系与交互组件为可选增强。

2.3 渲染器选择:Canvas vs SVG

ECharts 5 支持两种渲染器:Canvas(默认)和 SVG。选择正确的渲染器对监控大屏的性能与清晰度至关重要。

对比维度 Canvas 渲染器 SVG 渲染器
渲染原理 像素级位图绘制 矢量 DOM 元素
性能优势 大量数据点(>1000)时性能更优 少量数据点(<500)时交互更流畅
清晰度 依赖设备像素比,高 DPI 需额外处理 天然矢量,任意缩放不失真
交互能力 整体重绘,频繁 tooltip 更新开销大 独立 DOM 元素,hover/click 响应更快
内存占用 较低(单画布) 随图形数量线性增长
推荐场景 大数据量折线图、散点图、热力图 小数据量仪表盘、饼图、关系图

2.3.1 如何指定渲染器

在 echarts.init() 时通过第二个参数指定:

// 使用 Canvas 渲染器(默认,可省略)
const chart1 = echarts.init(document.getElementById('chart1'), null, { renderer: 'canvas' });

// 使用 SVG 渲染器
const chart2 = echarts.init(document.getElementById('chart2'), null, { renderer: 'svg' });
大屏实战建议: 监控大屏通常包含多个图表,建议混合使用——数据量大的趋势图(如 CPU 曲线)用 Canvas,数据量小的 KPI 指标卡或仪表盘用 SVG,以获得最佳性能与清晰度。
Canvas 与 SVG 渲染器对比 Canvas 渲染器 像素位图(整体重绘) 适合:大数据量(>1000 点) 内存占用低,重绘开销集中 SVG 渲染器 矢量 DOM 元素(独立更新) 适合:小数据量(<500 点) 交互流畅,高 DPI 清晰 选型原则:数据量大 → Canvas;交互频繁 / 高清晰度要求 → SVG;大屏项目可混合使用

2.4 本节小结

  • 引入方式: CDN 适合快速开发,npm 适合工程化项目,离线下载用于内网环境。
  • option 结构: 全局组件 → 坐标系 → 数据系列(核心)→ 交互组件,层级清晰。
  • 渲染器选择: Canvas 适合大数据量,SVG 适合小数据量与高清晰度场景。
动手练习: 打开浏览器控制台,使用 CDN 引入 ECharts,创建一个包含 title、xAxis、yAxis 和 series 的简单折线图,并尝试将渲染器切换为 svg,观察 tooltip 响应速度的变化。