当前位置: 首页 > 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 实例,避免内存泄漏。

http://www.lryc.cn/news/518521.html

相关文章:

  • AI赋能服装零售:商品计划智能化,化危机为转机
  • Spring AI ectorStore
  • zig 安装,Hello World 示例
  • 龙蜥Linux系统部署docker21.1.3版本
  • django解决跨域问题
  • 【蓝桥杯选拔赛真题60】C++寻宝石 第十四届蓝桥杯青少年创意编程大赛 算法思维 C++编程选拔赛真题解
  • Git 从入门到精通
  • vue3使用vue3-video-play播放m3u8视频
  • 使用API有效率地管理Dynadot域名,为文件夹中的域名统一设置电子邮件转发
  • Java虚拟机(Java Virtual Machine,JVM)
  • [免费]微信小程序(高校就业)招聘系统(Springboot后端+Vue管理端)【论文+源码+SQL脚本】
  • TCP Analysis Flags 之 TCP Retransmission
  • #Phi-4:微软 14B 参数开源模型,性能匹敌 OpenAI GPT-4o-mini,现已登陆 Ollama
  • JSON头文件调用
  • Swagger学习⑭——@Contact注解
  • 如何监听Vuex数据的变化?
  • Redis 优化秒杀(异步秒杀)
  • 前端中常用的单位度量(px,rpx,rem,em,vw,vh)+图片自适应
  • STM32之一种双通路CAN总线消息备份冗余处理方法(十三)
  • 从零开始:使用VSCode搭建Python数据科学开发环境
  • C#语言的字符串处理
  • 《安富莱嵌入式周报》第348期:开源低功耗测试仪,开源创意万用表,续航100-300小时,开源PCB电机,自制shell和网络协议栈,开源水培自动化系统
  • npm发布流程说明
  • 缓存-文章目录
  • LeetCode 3297.统计重新排列后包含另一个字符串的子字符串数目 I:滑动窗口
  • 如何在 Ubuntu 24.04 上安装 Memcached 服务器教程
  • 《深度学习模型在鸿蒙分布式框架下的跨设备高效之旅》
  • [python3]Excel解析库-xlutils
  • Springboot Bean创建流程、三种Bean注入方式(构造器注入、字段注入、setter注入)、循坏依赖问题
  • mybatisX插件的使用,以及打包成配置