Vue3使用ECharts

echarts官网

Apache ECharts

Vue3中使用命令安装ECharts

复制代码
npm install echarts

在需要使用的地方导入echarts

javascript 复制代码
import * as echarts from 'echarts'; // 导入 ECharts 库

创建储存DOM元素的响应式引用

javascript 复制代码
// 创建一个 Vue 的响应式引用,用于存储对 DOM 元素的引用
const chartRef = ref<HTMLDivElement | null>(null);

<HTMLDivElement | null>:ref 的泛型参数 <HTMLDivElement | null> 指定了 chartRef 可以持有的值的类型。在这里,chartRef 可以持有 HTMLDivElement 类型的对象或 nullHTMLDivElement 是一个 DOM 元素的类型,指的是一个 <div> 元素;

(null):表示chartRef初始值是null

创建div用来储存图表

html 复制代码
<template>
  <!-- 使用 ref 将 chartRef 绑定到这个 div 元素 -->
  <div ref="chartRef" style="width: 100%; height: 50vh;"></div>
</template>

定义ECharts的配置选项

javascript 复制代码
const chartOptions = {

  title: {

    text: '简单柱状图示例' // 图表的标题

  },

  tooltip: {}, // 启用图表的工具提示功能

  legend: {

    data: ['销售量'] // 图例显示的项名称

  },

  xAxis: {

    data: ['产品 A', '产品 B', '产品 C', '产品 D', '产品 E'] // X 轴的类目数据

  },

  yAxis: {}, // Y 轴的配置项,使用默认配置

  series: [

    {

      name: '销售量', // 数据系列的名称

      type: 'bar', // 图表类型为柱状图

      data: [5, 20, 36, 10, 10] // 数据系列的具体数据

    }

  ]

};

下面是一些配置选项的讲解

  1. title

    • text :标题文本,如 "Sales Report"
    • subtext :副标题文本,如 "2024 Q1"
    • lefttoprightbottom :标题的位置,可以是 autocenterleftrighttopbottom 等。
  2. tooltip

    • trigger :触发方式,可以是 item(触发数据项)或 axis(触发坐标轴)。
    • formatter:提示框格式化函数,可以是字符串模板或函数。
    • backgroundColor :背景颜色,如 '#fff''rgba(0,0,0,0.7)'
  3. legend

    • data :图例数据数组,例如 ['Sales', 'Revenue']
    • orient :图例布局方向,'horizontal'(水平)或 'vertical'(垂直)。
    • lefttoprightbottom:图例的位置。
  4. xAxisyAxis

    • type :坐标轴类型,可以是 'value'(数值型)、'category'(类目型)、'time'(时间型)或 'log'(对数型)。
    • data (仅类目型):坐标轴的刻度标签数组,如 ['Jan', 'Feb', 'Mar']
    • name :坐标轴名称,如 'Sales'
    • axisLabel :坐标轴标签配置,包括 formatter(标签格式化函数)。
  5. series

    • type :图表类型,例如 'line'(折线图)、'bar'(柱状图)、'pie'(饼图)。
    • data :数据数组,如 [120, 200, 150, 80, 70]
    • name :系列名称,如 'Sales'
    • itemStyle :系列项样式配置,包括 color(颜色)、borderColor(边框颜色)。
  6. grid

    • lefttoprightbottom :网格的边距,例如 4060
    • containLabel :是否包含坐标轴标签在网格范围内,truefalse
  7. color

    • color :图表的颜色数组,如 ['#3398DB', '#FF5722'],影响系列的颜色。
  8. dataZoom

    • type :数据缩放类型,'inside'(内部缩放)或 'slider'(滑块缩放)。
    • startend :缩放范围的起始和结束百分比,如 0100
  9. toolbox

    • show :是否显示工具箱,truefalse
    • feature :工具箱功能,如 saveAsImage(保存为图片)、dataView(数据视图)。

这些选项可以组合使用以实现丰富的图表效果和交互,具体也可以去看官网上的示例Apache ECharts

初始化ECharts实例和设置图表配置项

javascript 复制代码
// 在组件挂载后执行的生命周期钩子
onMounted(() => {
  // 确保 chartRef 已经被绑定到一个 DOM 元素
  if (chartRef.value) {
    // 初始化 ECharts 实例,传入 DOM 元素
    const chartInstance = echarts.init(chartRef.value);
    // 设置图表的配置项
    chartInstance.setOption(chartOptions);
  }
});

这样就可以使用简单的ECharts了

相关推荐
SoaringHeart1 小时前
Flutter调试组件:打印任意组件尺寸位置信息 NRenderBox
前端·flutter
晚风予星2 小时前
Ant Design Token Lens 迎来了全面升级!支持在 .tsx 或 .ts 文件中直接使用 Design Token
前端·react.js·visual studio code
sunny_2 小时前
⚡️ vite-plugin-oxc:从 Babel 到 Oxc,我为 Vite 写了一个高性能编译插件
前端·webpack·架构
GIS之路2 小时前
ArcPy 开发环境搭建
前端
林小帅3 小时前
【笔记】OpenClaw 架构浅析
前端·agent
林小帅4 小时前
【笔记】OpenClaw 生态系统的多语言实现对比分析
前端·agent
程序猿的程4 小时前
开源一个 React 股票 K 线图组件,传个股票代码就能画图
前端·javascript
不爱说话郭德纲4 小时前
告别漫长的HbuilderX云打包排队!uni-app x 安卓本地打包保姆级教程(附白屏、包体积过大排坑指南)
android·前端·uni-app
大雨还洅下5 小时前
前端JS: 虚拟dom是什么? 原理? 优缺点?
javascript
唐叔在学习5 小时前
[前端特效] 左滑显示按钮的实现介绍
前端·javascript