ECharts 基础与折线图

目录

  • [1.1 什么是 ECharts?](#1.1 什么是 ECharts?)
  • [1.2 安装 ECharts](#1.2 安装 ECharts)
  • [1.3 ECharts 的核心概念](#1.3 ECharts 的核心概念)
  • [1.4 在 Vue 3 中使用 ECharts 的标准模式](#1.4 在 Vue 3 中使用 ECharts 的标准模式)

1.1 什么是 ECharts?

ECharts 是百度开源的 JavaScript 数据可视化库,现在由 Apache 基金会维护。它可以帮你把数据变成各种图表:折线图、柱状图、饼图、地图、仪表盘、雷达图、散点图......几乎你能想到的图表它都支持。

1.2 安装 ECharts

在项目目录下执行:

bash 复制代码
cd E:/1_train/iot-screen
npm install echarts

安装完成后,package.json 的 dependencies 中会多出一行:

bash 复制代码
{
  "dependencies": {
    "vue": "^3.5.13",
    "echarts": "^5.x.x"    // ← 新增
  }
}

引入方式 --- 全量引入 vs 按需引入:

bash 复制代码
// 方式一:全量引入(简单,但打包体积大 ~800KB)
// ★ 教学和原型阶段用这个,简单省事
import * as echarts from 'echarts'

// 方式二:按需引入(只引入用到的组件,体积小很多)
// ★ 正式项目上线前改成这个
import * as echarts from 'echarts/core'
import { LineChart, BarChart, PieChart } from 'echarts/charts'
import { TitleComponent, TooltipComponent, LegendComponent, GridComponent } from 'echarts/components'
import { CanvasRenderer } from 'echarts/renderers'

echarts.use([
  LineChart, BarChart, PieChart,
  TitleComponent, TooltipComponent, LegendComponent, GridComponent,
  CanvasRenderer
])

1.3 ECharts 的核心概念

使用 ECharts 只需要理解三样东西:

bash 复制代码
1. 容器(Container) ------ 一个有宽高的 DOM 元素(div)
2. 实例(Instance)   ------ 通过 echarts.init(容器) 创建
3. 配置(Option)     ------ 一个 JS 对象,描述图表长什么样
bash 复制代码
准备一个 <div>(必须有宽高!)
       ↓
echarts.init(div) → 得到图表实例
       ↓
实例.setOption(配置对象) → 图表渲染出来
       ↓
数据变化时:再次调用 setOption(新配置) → 图表自动更新
       ↓
组件销毁时:实例.dispose() → 释放资源

1.4 在 Vue 3 中使用 ECharts 的标准模式

bash 复制代码
<template>
  <!--
    ★ 图表容器:
    1. 必须用 ref 绑定,方便 JS 中获取 DOM 元素
    2. 必须有明确的宽高(ECharts 需要知道画布大小)
  -->
  <div ref="chartRef" style="width: 100%; height: 100%"></div>
</template>

<script setup>
import { ref, onMounted, onUnmounted } from 'vue'
import * as echarts from 'echarts'

// ==================== Step 1:获取 DOM 引用 ====================
// ref="chartRef" 绑定的 DOM 元素
const chartRef = ref(null)

// 图表实例(不用 ref 包裹,因为不需要响应式)
let chartInstance = null

// ==================== Step 2:定义配置项 ====================
const option = {
  // ... 图表配置(后面详细讲)
}

// ==================== Step 3:初始化图表 ====================
onMounted(() => {
  // 确保 DOM 已存在
  if (chartRef.value) {
    // 创建 ECharts 实例
    chartInstance = echarts.init(chartRef.value)
    // 设置配置项(图表就渲染出来了)
    chartInstance.setOption(option)
  }
})

// ==================== Step 4:清理资源 ====================
onUnmounted(() => {
  // ★ 必须 dispose!否则内存泄漏
  if (chartInstance) {
    chartInstance.dispose()
    chartInstance = null
  }
})
</script>

骨架搭好了,现在我们要给图表注入灵魂。option 对象就是 ECharts 的'基因图谱',它决定了图表长什么样。

那option怎么写呢?

最简单的方式, 就是直接到echarts的官网 链接: https://echarts.apache.org/找, 找到你想要的图表, 然后直接复制完后改成自己想要的

网站里面图表非常丰富, 但是要改成我们自己想要的, 还需要了解Options不是:

Options所有的配置都遵循一个层级树状结构

bash 复制代码
option (根节点)
 ├── title (标题组件)
 ├── legend (图例组件)
 ├── grid (直角坐标系内绘图网格)
 │    ├── xAxis (x轴)
 │    └── yAxis (y轴)
 ├── series (系列列表,核心!)
 │    ├── type: 'line' (图表类型)
 │    ├── data: [...] (数据)
 │    └── itemStyle (图形样式)
 │         └── color: 'red'
 └── tooltip (提示框)

💡 核心规律:

  1. 组件独立:title、legend、tooltip 等都是平级的顶级属性。
  2. Series 是数组:series 是一个数组 [],因为一个图表可以同时画折线 + 柱状(混合图表)。
  3. 样式嵌套:具体的颜色、字体、边框通常藏在 itemStyle、label、lineStyle 等子对象里。

小白啊!!!写的不好轻喷啊🤯如果觉得写的不好,点个赞吧🤪(批评是我写作的动力)

...。。。。。。。。。。。...

...。。。。。。。。。。。...

相关推荐
小雨青年2 小时前
鸿蒙 HarmonyOS 6 | 混合开发 (01) Web 组件内核——ArkWeb 加载机制与 Cookie 管理
前端·华为·harmonyos
工边页字2 小时前
AI产品面试官超喜欢问:什么是 Embedding,它是怎么工作的 ?
前端·人工智能·后端
吃西瓜的年年2 小时前
前端面试题(vue)
前端·javascript·vue.js
wuhen_n2 小时前
结构化Prompt——让AI说“人话”
前端·vue.js·ai编程
前端小趴菜053 小时前
vue3-signature实现电子签名
前端·javascript·vue.js
玉米Yvmi3 小时前
React自定义Hook实战指南:从入门到精通,让你的代码像乐高一样灵活
前端·react.js·面试
CharlieWang3 小时前
AI + Cloudflare = 你需要的全部
前端·敏捷开发·全栈
董员外3 小时前
从零实现 AI 编程助手:LangChain.js + ReAct 循环实战
前端·javascript·后端
bluceli3 小时前
JavaScript BigInt:处理大数值的终极解决方案
前端·javascript