当前位置: 首页 > news >正文

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 实例,避免内存泄漏。

相关文章:

Vue2中使用Echarts

1.安装echarts 在项目根目录下&#xff0c;使用npm或yarn安装ECharts&#xff1a; npm install echarts --save 或者 yarn add echarts 2.在相应的vue页面中引入echarts <script> import * as echarts from "echarts"; </script> 3.代码解析 <…...

AI赋能服装零售:商品计划智能化,化危机为转机

在服装零售这片竞争激烈的战场上&#xff0c;每一个细微的决策都可能成为品牌兴衰的关键。当市场波动、消费者口味变化、供应链挑战接踵而至时&#xff0c;许多品牌往往将危机归咎于外部环境。然而&#xff0c;真相往往更为深刻——“危机不是外部的&#xff0c;而是你的商品计…...

Spring AI ectorStore

Spring AI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案&#xff0c;它在AI应用中扮演着至关重要的角色。以下是对Spring AI VectorStore的详细解析&#xff1a; 一、VectorStore的基本概念 定义&#xff1a;VectorStore特别适用于处理那些经过嵌入…...

zig 安装,Hello World 示例

1. 安装 Zig 首先&#xff0c;你需要在你的计算机上安装 Zig 编译器。你可以从 Zig 官方网站 下载适合你操作系统的版本。 安装完成后&#xff0c;你可以在终端中运行以下命令来检查 Zig 是否安装成功&#xff1a; zig version如果一切正常&#xff0c;它会显示 Zig 的版本信…...

龙蜥Linux系统部署docker21.1.3版本

龙蜥系统配置docker环境 更新yum源 更新软件源中的包。 yum update安装底层工具 yum install -y yum-utils device-mapper-persistent-data lvm2添加阿里云仓库 # 添加阿里云的docker镜像仓库 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/c…...

django解决跨域问题

# 1.安装django-cors-headers 库 pip install django-cors-headers -i https://pypi.tuna.tsinghua.edu.cn/simple2.添加到应用程序中 添加 corsheaders 到你的 INSTALLED_APPS 设置中&#xff1a; INSTALLED_APPS [...corsheaders,... ]3.添加中间件 MIDDLEWARE [...cor…...

【蓝桥杯选拔赛真题60】C++寻宝石 第十四届蓝桥杯青少年创意编程大赛 算法思维 C++编程选拔赛真题解

目录 C++寻宝石 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 五、运行结果 六、考点分析 七、推荐资料 C++寻宝石 第十四届蓝桥杯青少年创意编程大赛C++选拔赛真题 一、题目要求 1、编程实现 有N(1<N<100)个盒子排成一排,每个盒子都放…...

Git 从入门到精通

一、环境配置 下载地址&#xff1a;https://git-scm.com/downloads/ 二、用户配置 找到git bash git --version 查看当前版本 git config --global user.name szhipeng625 设置用户名 git config --global user.email szhipeng625gmail.com 设置邮箱 git config --global …...

vue3使用vue3-video-play播放m3u8视频

1.安装vue3-video-play npm install vue3-video-play --save2.在组件中使用 import vue3-video-play/dist/style.css; import VideoPlay from vue3-video-play;// 视频配置项 const options reactive({src: https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8, //视频源mute…...

使用API有效率地管理Dynadot域名,为文件夹中的域名统一设置电子邮件转发

关于Dynadot Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮…...

Java虚拟机(Java Virtual Machine,JVM)

一、Java 虚拟机 Java 虚拟机&#xff08;Java Virtual Machine, JVM&#xff09;是运行 Java 字节码的虚拟机。它是Java平台的核心组件之一&#xff0c;使得Java程序具有 一次编写&#xff0c;到处运行&#xff08;Write Once, Run Anywhere&#xff09; 的特性。 JVM 有针对…...

[免费]微信小程序(高校就业)招聘系统(Springboot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序(高校就业)招聘系统(Springboot后端Vue管理端)&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序(高校就业)招聘系统(Springboot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项目介绍…...

TCP Analysis Flags 之 TCP Retransmission

前言 默认情况下&#xff0c;Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态&#xff0c;并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时&#xff0c;会对每个 TCP 数据包进行一次分析&#xff0c;数据包按照它们在数据包列表中出现的顺序进行处理。可…...

#Phi-4:微软 14B 参数开源模型,性能匹敌 OpenAI GPT-4o-mini,现已登陆 Ollama

Phi-4&#xff1a;微软 14B 参数开源模型&#xff0c;性能匹敌 OpenAI GPT-4o-mini&#xff0c;现已登陆 Ollama 一、Phi-4 模型概述 &#xff08;一&#xff09;模型参数与规模 Phi-4 是微软推出的一款小型语言模型&#xff0c;拥有 140 亿参数。虽然参数量相对较小&#xf…...

JSON头文件调用

除了传统的读写操作,现在流行的json文件读取保存,还是非常方便的. 头文件放在源代码中,在调用处添加引用路径 #include “…/ConsoleApplication1/include/json.hpp” using json nlohmann::json; 数据结构例子: // 声明Person类 class Person { public: std::string name; i…...

Swagger学习⑭——@Contact注解

介绍 Contact 是 Swagger/OpenAPI 3.0 注解中的一个注解&#xff0c;用于定义 API 文档中的联系信息。通过 Contact 注解&#xff0c;你可以指定 API 维护者的联系方式&#xff0c;例如电子邮件、URL 或名称等。 源代码 package io.swagger.v3.oas.annotations.info;import …...

如何监听Vuex数据的变化?

使用watch方法监听Vuex state的变化&#xff1a; // 在 Vue 组件中 this.$store.watch((state) > state.someState,(newValue, oldValue) > {console.log(someState changed from, oldValue, to, newValue);} );使用subscribe方法监听mutation的变化&#xff1a; // 在…...

Redis 优化秒杀(异步秒杀)

目录 为什么需要异步秒杀 异步优化的核心逻辑是什么&#xff1f; 阻塞队列的特点是什么&#xff1f; Lua脚本在这里的作用是什么&#xff1f; 异步调用创建订单的具体逻辑是什么&#xff1f; 为什么要用代理对象proxy调用createVoucherOrder方法&#xff1f; 对于代码的详细…...

前端中常用的单位度量(px,rpx,rem,em,vw,vh)+图片自适应

文章目录 前端中常用的单位度量vw/vh 的场景应用px/rem/em 之间的转换关系项目中的rem 应用根元素 font-size 设置为16px 的应用惯例自适应之图片应用1. 使用 max-width 和 max-height2. 使用 object-fit 属性3. 使用 background-image 模拟图片展示 前端中常用的单位度量 px&…...

STM32之一种双通路CAN总线消息备份冗余处理方法(十三)

STM32F407 系列文章 - Dual-CANBus-ProMethod&#xff08;十三&#xff09; 目录 前言 一、现状分析 二、解决思路 1.应用场景网络结构图 2.数据发送流程 3.数据接收流程 4.用到的模块 1.CAN网络速率及时间片分配 2.CAN网络消息ID组成 3.设备节点定义 4.数据格式说明…...

cmder设置默认打开路径

从你发的截图来看&#xff0c;目前没有任何一项被选中&#xff08;右侧的代码框是空的&#xff0c;而且右下角的 Startup dir... 按钮也是灰色不可点击的状态&#xff09;&#xff0c;并且确实没有带 * 号的项。没关系&#xff0c;如果没有带 * 号&#xff0c;按照下面的步骤操…...

计算机专业生打 CTF 全指南:从新手小白到赛事拿分,附实战避坑手册_ctf比赛自己带电脑吗

作为计算机专业毕业的过来人&#xff0c;我始终觉得&#xff1a;CTF 比赛是大学生把课本知识落地成硬技能的最佳载体。 刚上大二时&#xff0c;我还是个只会敲基础代码、对 网络安全停留在课本概念的小白&#xff0c;靠着 3 次参赛经历&#xff0c;不仅吃透了操作系统、计算机…...

团队协作效率翻倍:手把手教你用TortoiseGit管理多分支与查看提交日志(图文详解)

团队协作效率翻倍&#xff1a;TortoiseGit多分支管理与提交日志深度实战 在敏捷开发团队中&#xff0c;代码版本控制如同乐团的指挥棒&#xff0c;而TortoiseGit则是让每个开发者都能直观参与这场协奏的图形化利器。不同于初学者需要从安装配置起步&#xff0c;本文面向已经掌握…...

Unity 2019格斗游戏开发:帧同步、输入缓冲与Hitbox/Hurtbox实现

1. 为什么2019版Unity仍是横板格斗开发的“黄金锚点”我带过三届游戏开发训练营&#xff0c;每次开课前都会问学员&#xff1a;“你最想用哪个版本做格斗游戏&#xff1f;”——超过七成的人脱口而出“最新版”。但当我把他们拉进一个用Unity 2019.4.40f1跑通的《街霸》风格连招…...

LabVIEW布尔控件机械动作选错,程序逻辑全乱?手把手教你6种动作的实战用法(附避坑案例)

LabVIEW布尔控件机械动作全解析&#xff1a;从入门到避坑实战指南 引言&#xff1a;为什么你的LabVIEW按钮总是不听话&#xff1f; 在LabVIEW开发过程中&#xff0c;布尔控件就像电路中的开关&#xff0c;看似简单却暗藏玄机。许多开发者都有过这样的经历&#xff1a;精心设计的…...

CANN/asc-devkit bfloat16精度转换函数

__float22bfloat162_rd 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: https://…...

3个步骤快速定位Windows热键占用者:Hotkey Detective完整实战指南

3个步骤快速定位Windows热键占用者&#xff1a;Hotkey Detective完整实战指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective …...

2026年多Agent协作实战:用CrewAI搭建5角色AI开发团队

前言上一篇我们学习了MCP协议&#xff0c;掌握了AI与工具交互的标准化方法。本文将更进一步&#xff0c;探讨如何让多个AI Agent协同工作——就像组建一个AI开发团队&#xff0c;每个Agent负责不同的角色&#xff0c;通过协作完成复杂任务。—## 一、为什么需要多Agent协作&…...

AMD GPU本地AI模型部署终极指南:ollama-for-amd让你的Radeon显卡焕发新生

AMD GPU本地AI模型部署终极指南&#xff1a;ollama-for-amd让你的Radeon显卡焕发新生 【免费下载链接】ollama-for-amd Get up and running with Llama 3, Mistral, Gemma, and other large language models.by adding more amd gpu support. 项目地址: https://gitcode.com/…...

Go语言实现CI/CD流水线:从GitHub Actions到Argo CD的完整指南

Go语言实现CI/CD流水线&#xff1a;从GitHub Actions到Argo CD的完整指南 引言 CI/CD是现代软件开发的核心实践&#xff0c;Go语言项目可以通过各种CI/CD工具实现自动化构建、测试和部署。本文将深入探讨Go语言项目的CI/CD流水线实现&#xff0c;涵盖GitHub Actions、GitLab CI…...