Vue2中使用Echarts

1.安装echarts

在项目根目录下,使用npm或yarn安装ECharts:

npm install echarts --save

或者

yarn add echarts

2.在相应的vue页面中引入echarts

<script>
import * as echarts from "echarts";
</script>

3.代码解析

<template>
  <div ref="chart" style="width: 600px; height: 400px;"></div>
</template>

<script>
import * as echarts from 'echarts';

export default {
  name: 'MyChart',
  mounted() {
    this.initChart();
  },
  methods: {
    initChart() {
      // 获取DOM元素
      const chartDom = this.$refs.chart;
      
      // 初始化ECharts实例
      const myChart = echarts.init(chartDom);

      // 配置图表选项
      const option = {
        title: {
          text: 'ECharts 入门示例'
        },
        tooltip: {},
        xAxis: {
          data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
        },
        yAxis: {},
        series: [
          {
            name: '销量',
            type: 'bar',
            data: [5, 20, 36, 10, 10, 20]
          }
        ]
      };

      // 使用配置项显示图表
      myChart.setOption(option);
    }
  }
};
</script>

 1.定义了一个用于渲染图表的DOM元素。

<div ref="chart" style="width: 600px; height: 400px;"></div>

2.生命周期钩子用于在组件挂载后初始化图表。

mounted() {
    this.initChart();
  },

3.initChart() 方法用于初始化ECharts实例并设置图表配置。

        获取DOM元素

const chartDom = this.$refs.chart;
  • this.$refs.chart 是 Vue 中通过 ref 属性获取 DOM 元素的方式。

  • 在模板中,<div ref="chart"></div> 定义了一个 DOM 元素,this.$refs.chart 就是对这个元素的引用。

  • 这个 DOM 元素将作为 ECharts 图表的容器。

        初始化 ECharts 实例

const myChart = echarts.init(chartDom);
  • echarts.init(chartDom) 是 ECharts 的初始化方法,它会将 chartDom 元素初始化为一个 ECharts 实例。

  • myChart 是 ECharts 实例的引用,后续可以通过它来操作图表(例如更新数据、调整配置等)。

        配置图表选项

const option = {
  title: {
    text: 'ECharts 入门示例'
  },
  tooltip: {},
  xAxis: {
    data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
  },
  yAxis: {},
  series: [
    {
      name: '销量',
      type: 'bar',
      data: [5, 20, 36, 10, 10, 20]
    }
  ]
};
  • option 是 ECharts 的配置对象,用于定义图表的外观和行为。

  • title:图表的标题,text 属性设置标题内容。

  • tooltip:提示框组件,当鼠标悬停在图表上时会显示提示信息。

  • xAxis:X 轴配置,data 属性设置 X 轴的数据项(这里是商品的名称)。

  • yAxis:Y 轴配置,这里没有额外配置,ECharts 会自动根据数据生成 Y 轴。

  • series:系列列表,每个系列代表一组数据。

    • name:系列的名称,会显示在图例和提示框中。

    • type:图表的类型,这里是柱状图(bar)。

    • data:系列的数据,对应 Y 轴的值。

        使用配置项显示图表

myChart.setOption(option);
  • myChart.setOption(option) 将配置对象 option 应用到 ECharts 实例中,从而渲染出图表。

  • 这一步是必须的,否则图表不会显示。

4.后端获取数据如何在echarts中使用

<template>
  <div ref="chart" style="width: 600px; height: 400px;"></div>
</template>

<script>
import * as echarts from 'echarts';
import axios from 'axios';

export default {
  name: 'MyChart',
  data() {
    return {
      myChart: null, // 用于保存 ECharts 实例
      xAxisData: [], // X 轴数据
      yAxisData: []  // Y 轴数据
    };
  },
  mounted() {
    this.initChart();
    this.fetchData(); // 组件挂载后获取数据
  },
  methods: {
    // 初始化图表
    initChart() {
      const chartDom = this.$refs.chart;
      this.myChart = echarts.init(chartDom);
    },

    // 从后端获取数据
    async fetchData() {
      try {
        // 发送请求获取数据
        const response = await axios.get('https://api.example.com/chart-data');
        const data = response.data;

        // 更新 X 轴和 Y 轴数据
        this.xAxisData = data.xAxis;
        this.yAxisData = data.yAxis;

        // 更新图表
        this.updateChart();
      } catch (error) {
        console.error('Failed to fetch data:', error);
      }
    },

    // 更新图表
    updateChart() {
      if (this.myChart) {
        const option = {
          title: {
            text: '动态数据示例'
          },
          tooltip: {},
          xAxis: {
            data: this.xAxisData // 使用从后端获取的 X 轴数据
          },
          yAxis: {},
          series: [
            {
              name: '销量',
              type: 'bar',
              data: this.yAxisData // 使用从后端获取的 Y 轴数据
            }
          ]
        };

        // 使用配置项显示图表
        this.myChart.setOption(option);
      }
    }
  },
  beforeDestroy() {
    // 销毁 ECharts 实例
    if (this.myChart) {
      this.myChart.dispose();
    }
  }
};
</script>

数据定义

data() {
  return {
    myChart: null, // 用于保存 ECharts 实例
    xAxisData: [], // X 轴数据
    yAxisData: []  // Y 轴数据
  };
}
  • myChart:用于保存 ECharts 实例,方便后续操作。

  • xAxisData 和 yAxisData:分别用于存储从后端获取的 X 轴和 Y 轴数据。

初始化图表

initChart() {
  const chartDom = this.$refs.chart;
  this.myChart = echarts.init(chartDom);
}
  • 在 mounted 钩子中调用 initChart,初始化 ECharts 实例。

获取后端数据

async fetchData() {
  try {
    const response = await axios.get('https://api.example.com/chart-data');
    const data = response.data;

    // 更新 X 轴和 Y 轴数据
    this.xAxisData = data.xAxis;
    this.yAxisData = data.yAxis;

    // 更新图表
    this.updateChart();
  } catch (error) {
    console.error('Failed to fetch data:', error);
  }
}
  • 使用 axios.get 发送 HTTP 请求,获取后端数据。

  • 假设后端返回的数据格式为:

    {
      "xAxis": ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
      "yAxis": [5, 20, 36, 10, 10, 20]
    }
  • 将获取到的数据赋值给 xAxisData 和 yAxisData,然后调用 updateChart 更新图表。

更新图表

updateChart() {
  if (this.myChart) {
    const option = {
      title: {
        text: '动态数据示例'
      },
      tooltip: {},
      xAxis: {
        data: this.xAxisData // 使用从后端获取的 X 轴数据
      },
      yAxis: {},
      series: [
        {
          name: '销量',
          type: 'bar',
          data: this.yAxisData // 使用从后端获取的 Y 轴数据
        }
      ]
    };

    // 使用配置项显示图表
    this.myChart.setOption(option);
  }
}
  • 根据 xAxisData 和 yAxisData 动态生成图表的配置项 option

  • 调用 this.myChart.setOption(option) 更新图表。

销毁 ECharts 实例

beforeDestroy() {
  if (this.myChart) {
    this.myChart.dispose();
  }
}
  • 在组件销毁前,调用 dispose 方法销毁 ECharts 实例,避免内存泄漏。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/948927.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue 项目集成 electron 和 electron 打包及环境配置

vue electron 开发桌面端应用 安装 electron npm i electron -D记得加上-D&#xff0c;electron 需添加到devDependencies&#xff0c;如果添加到dependencies后面运行可能会报错 根目录创建electron文件夹&#xff0c;在electron文件夹创建main.js&#xff08;或者backgrou…

Rabbitmq追问1

如果消费端代码异常&#xff0c;未手动确认&#xff0c;那么这个消息去哪里 2024-12-31 21:19:12 如果消费端代码发生异常&#xff0c;未手动确认&#xff08;ACK&#xff09;的情况下&#xff0c;消息的处理行为取决于消息队列的实现和配置&#xff0c;以下是基于 RabbitMQ …

第二十八周机器学习笔记:PINN求正反解求PDE文献阅读——反问题、动手深度学习

第二十七周周报 一、文献阅读题目信息摘要Abstract网络架构实验——Data-driven discovery of partial differential equations&#xff08;偏微分方程的数据驱动发现&#xff09;1. Continuous time models&#xff08;连续时间模型&#xff09;例子&#xff1a;(Navier–Stok…

02-1堆的概念

2-1 堆的概念 开启实验步骤: 有两种创建工程的方式, 直接使用老师的文档, 然后进行调试 老师的工程 或者跳转我的步骤进行调试从零创建(ctrl 加鼠标左键,快速跳转) 视频观看地址: 韦东山freeRTOS快速入门视频教程 开始实验 (1) 我们定义一个空闲的数组heap_buf[1024], 它就…

【HarmonyOS之旅】ArkTS语法(四) -> 使用限制与扩展

目录 1 -> 在生成器函数中的使用限制 2 -> 变量的双向绑定 3 -> 自定义组件成员变量初始化的方式与约束 1 -> 在生成器函数中的使用限制 ArkTS语言的使用在生成器函数中存在一定的限制&#xff1a; 表达式仅允许在字符串(${expression})、if条件、ForEach的参…

大麦抢票科技狠活

仅供学习参考&#xff0c;切勿再令您所爱的人耗费高昂的价格去购置黄牛票 ⚠️核心内容参考: 据悉&#xff0c;于购票环节&#xff0c;大麦凭借恶意流量清洗技术&#xff0c;于网络层实时甄别并阻拦凭借自动化手段发起下单请求的流量&#xff0c;强化对刷票脚本、刷票软件以及…

【C++】B2106 矩阵转置

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目解析&#x1f4af;第一种实现方式&#xff1a;我的初始做法实现思路优缺点分析 &#x1f4af;第二种实现方式&#xff1a;我的优化做法实现思路优缺点分析 &#x1f4a…

五月天TV 1.1.0 | 频道丰富的娱乐向电视直播应用

五月天IPTV是一款提供多种频道的电视直播应用&#xff0c;包括体育、动漫、音乐等。虽然频道种类繁多&#xff0c;但正经频道较少&#xff0c;更适合追求娱乐和轻松内容的用户群体。软件在测试中发现存在一些小问题&#xff0c;频道质量参差不齐。 大小&#xff1a;15M 下载地…

高等数学 8.2 数量积 向量积 *混合积

文章目录 一、数量积二、向量积三、*混合积 一、数量积 对两个向量做运算 a \boldsymbol{a} a 和 b \boldsymbol{b} b &#xff0c;运算结果是一个数&#xff0c;它等于 ∣ a ∣ |\boldsymbol{a}| ∣a∣ &#xff0c; ∣ b ∣ |\boldsymbol{b}| ∣b∣ 及它们的夹角 θ \th…

Crosslink-NX应用连载(12):如何复用特殊功能管脚

作者&#xff1a;Hello,Panda 大家早上好。 昨天有朋友私信我&#xff0c;如何复用Crosslink-NX的特殊功能引脚如PROGRAMN、DONE、INITN诸如这些。熊猫君在这里简单介绍下&#xff1a; 以LIFCL-33U-8CTG104C为例&#xff0c;我们建立一个简单的指示灯LED周期闪烁的工程&…

Spring MVC和servlet

1.Spring MVC是Spring框架的一个扩展 2.Spring MVC工作流程 1、用户发送请求至前端控制器DispatcherServlet。 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找)&#xff0c;生成处理器对象及…

TI毫米波雷达原始数据解析之Lane数据交换

TI毫米波雷达原始数据解析之Lane数据交换 背景Lane 定义Lane 确认确认LVDS Lane 数量的Matlab 代码数据格式参考 背景 解析使用mmWave Studio 抓取的ADC Data Lane 定义 芯片与DCA100之间的数据使用LVDS接口传输&#xff0c;使用mmWave Studio 配置过程中有一个选项是LVDS L…

VisionPro软件Image Stitch拼接算法

2D图像拼接的3种情景 1.一只相机取像位置固定&#xff0c;或者多只相机固定位置拍图&#xff0c;硬拷贝拼图&#xff0c;采用CopyRegion工具实现 2.一只或多只相机在多个位置拍照&#xff0c;相机视野互相重叠&#xff0c;基于Patmax特征定位后&#xff0c;无缝 拼图&#xff…

const修饰指针总结

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…

回归预测 | MATLAB实ELM-Adaboost多输入单输出回归预测

回归预测 | MATLAB实ELM-Adaboost多输入单输出回归预测 目录 回归预测 | MATLAB实ELM-Adaboost多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 一、极限学习机&#xff08;ELM&#xff09; 极限学习机是一种单层前馈神经网络&#xff0c;具有训练速…

centos,789使用mamba快速安装R及语言包devtools

如何进入R语言运行环境请参考&#xff1a;Centos7_miniconda_devtools安装_R语言入门之R包的安装_r语言devtools包怎么安装-CSDN博客 在R里面使用安装devtools经常遇到依赖问题&#xff0c;排除过程过于费时&#xff0c;使用conda安装包等待时间长等。下面演示centos,789都是一…

Pytest钩子函数,测试框架动态切换测试环境

在软件测试中&#xff0c;测试环境的切换是个令人头疼的问题。不同环境的配置不同&#xff0c;如何高效切换测试环境成为许多测试开发人员关注的重点。你是否希望在运行测试用例时&#xff0c;能够动态选择测试环境&#xff0c;而不是繁琐地手动修改配置&#xff1f; Pytest 测…

node.js内置模块之---stream 模块

stream 模块的作用 在 Node.js 中&#xff0c;stream 模块是一个用于处理流&#xff08;stream&#xff09;的核心模块。流是一种处理数据的抽象方式&#xff0c;允许程序处理大量数据时不会一次性将所有数据加载到内存中&#xff0c;从而提高性能和内存效率。通过流&#xff0…

深入理解 PHP 构造函数和析构函数:附示例代码

在深入学习 PHP 面向对象编程 (OOP) 的过程中&#xff0c;构造函数和析构函数是两个需要掌握的基础概念。这些特殊方法能够有效地初始化和清理对象&#xff0c;使代码更加简洁有序。 本文将深入探讨 PHP 中构造函数和析构函数的工作机制&#xff0c;详细解析它们的语法&#x…

(二)当人工智能是一个函数,函数形式怎么选择?ChatGPT的函数又是什么?

在上一篇文章中&#xff0c;我们通过二次函数的例子&#xff0c;讲解了如何训练人工智能。今天&#xff0c;让我们进一步探讨&#xff1a;面对不同的实际问题&#xff0c;应该如何选择合适的函数形式&#xff1f; 一、广告推荐系统中的函数选择 1. 业务目标 想象一下&#x…