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 等子对象里。

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

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

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

相关推荐
tryCbest42 分钟前
Vue3——第 6 篇:事件处理与表单绑定——v-on 与 v-model
前端·javascript·vue.js
恋猫de小郭1 小时前
Flutter 的文字为什么比 SwiftUI 更细?问题主要在 Skia 的 256 项查找表里
android·前端·flutter
lexiangqicheng1 小时前
前端高阶面试核心通关指南:深入解析Vue3与React18底层原理及性能优化
前端·面试·性能优化
怕浪猫1 小时前
前端对接聊天 API:我用 React 做了一个比 ChatGPT 还好看的界面
前端·后端·面试
程序员小孔.1 小时前
基于 Spring Cloud + Vue 的 JEEWMS 开源仓储管理平台设计与实现
前端·javascript·vue.js·spring boot·spring cloud·开源
IT_陈寒1 小时前
深入理解Python:核心原理与最佳实践
前端·人工智能·后端
我喜欢就喜欢1 小时前
Chrome 插件开发实战指南
前端·chrome
夕阳_醉了1 小时前
花了一天的时间,地板式扫盲了vue3所有API盲点
前端·javascript·vue.js
LinDaiuuj1 小时前
Figma Specs 高效交付与开发协作指南
前端·figma
风骏时光牛马2 小时前
大模型底层架构与推理机制源码深度剖析
前端