【Echarts】在Vue中使用Echarts

news2024/12/23 5:43:34

在Vue中使用Echarts

  • 引入第三方库vue-echarts
  • vue-echarts安装与使用
    • vue2中使用Echarts
      • vue-echarts安装
      • vue2中使用Echarts
    • vue3中使用Echarts
      • vue-echarts安装
      • vue3中使用Echarts

引入第三方库vue-echarts

Vue是数据驱动dom,改变数据让图表自动根据数据变化更新,但是Echarts中是使用实例,myChart.setOption(option)进行更新,并不能根据数据变换自动更新视图,因此Echarts不符合vue使用的概念。因此为了解决这个问题,引入第三方库vue-echarts

vue-echarts安装与使用

vue2中使用Echarts

vue-echarts安装

安装两个库:echarts和vue-echarts

npm install echarts vue-echarts

要在vue 2下使用vue-echarts,需要确保@vue/composition-api 已经安装
(-D是–save-dev的缩写,也就是说composition-api并不会打包到生产版本,只在开发版本)

npm i -D @vue/composition-api

为了更小的打包体积,建议是手动从ECharts引入单个图表和组件,可参考github文档
如果实在需要全量引入从而无需手动引入模块,需需要在代码中添加:

import 'echarts'

vue2中使用Echarts

main.js文件

import Vue from 'vue';
import App from './App.vue';
import router from './router';
import store from './store';
//引入ECharts
import ECharts from 'vue-echarts';
import 'echarts';

Vue.component('ECharts',ECharts);

DataView.vue
ECharts第一个简单demo

<template>
    <div>
        <e-charts
        class="chart"
        :option="option"
        />
    </div>
    
</template>
<script>
export default {
    data(){
        return{
            option:{
                xAxis: {
                    type: 'category',
                    data: ['A', 'B', 'C']
                },
                yAxis: {
                    type: 'value'
                },
                series: [
                    {
                    data: [120, 200, 150],
                    type: 'line'
                    }
                ]
            }
        }
    }
    
}
</script>

<style scoped>
.chart{
    height: 400px;
}

</style>

运行结果
在这里插入图片描述
修改完善后:

  • 完善数据形式,获取后端数据进行图表渲染;
  • 每秒更新一次数据(随机生成);
  • data一旦改变,option改变,如此一来,Echarts在vue中使用完美符合vue开发概念

修改后的DataView.vue

<template>
    <div>
        <e-charts
        class="chart"
        :option="option"
        />
    </div>
    
</template>
<script>
export default {
    data(){
        return{
            data:this.getRandomData(),
            
        }
    },
    // data一旦改变,option则改变,因此将option放入计算属性
    computed:{
        option(){
            return{
                xAxis: {
                    type: 'category',
                    // data: ['A', 'B', 'C']
                    // 映射
                    data:this.data.map(d => d.time)
                },
                yAxis: {
                    type: 'value'
                },
                series: [
                    {
                    type: 'line' , 
                    // data: [120, 200, 150],
                    data: this.data.map(d => d.value)
                    }
                ]
            }
                
            }
    },
    // 更新data,每秒更新一次
    created(){
        setInterval(() =>{
            this.data=this.getRandomData();
        },1000);
    },
    methods:{
        //随机生成数据
        getRandomData(){
            return [
                {
                    time:'2018-01-02',
                    value:Math.random()*100,
                },
                {
                    time:'2018-01-02',
                    value:Math.random()*100,
                },
                {
                    time:'2018-01-02',
                    value:Math.random()*100,
                },
                {
                    time:'2018-01-02',
                    value:Math.random()*100,
                },
            ];
        }
    }
    
}
</script>

<style scoped>
.chart{
    height: 400px;
}

</style>

运行结果
在这里插入图片描述

vue3中使用Echarts

vue-echarts安装

安装两个库:echarts和vue-echarts

npm install echarts vue-echarts

vue3中使用Echarts

main.js文件

import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
import store from './store';

import ECharts from 'vue-echarts';
import 'echarts';

createApp(App)
    .use(store)
    .use(router)
    .component('ECharts', ECharts)
    .mount('#app')

App.vue
第一个简单示例

<template>
  <e-charts class="chart" :option="option"/>
</template>
<script setup> 
// 在vue3中要将option挂载上,需要ref
import {ref} from 'vue';
const option = ref({
    xAxis: {
      type: 'category',
      data: ['A', 'B', 'C']
    },
    yAxis: {
      type: 'value'
    },
    series: [
      {
        data: [120, 200, 150],
        type: 'line'
      }
    ]
});
</script>

<style>
.chart{
  height: 400px;
}
</style>

运行结果
在这里插入图片描述
改进App.vue
让option响应data数据更新

<template>
  <e-charts class="chart" :option="option"/>
</template>
<script setup> 
// 在vue3中要将option挂载上,需要ref
import {ref ,computed} from 'vue';
const data=ref([
  {value:50,name:'A'},
  {value:80,name:'B'},
  {value:30,name:'C'},
  {value:120,name:'D'},
  {value:10,name:'E'},
]);

// 没秒更新数据一次
setInterval(() =>{
  data.value=data.value.map(item =>({
    ...item,
    value:Math.random()*100,
  }));
},1000);

//如何让option响应data数据更新
const option=computed(() =>{
  return {
    xAxis: {
      type: 'category',
      // data: ['A', 'B', 'C']
      // 实际数据映射
      data:data.value.map(d => d.name)
    },
    yAxis: {
      type: 'value'
    },
    series: [
      {
        // data: [120, 200, 150],
        data:data.value.map(d => d.value),
        type: 'line'
      }
    ]
}
});

// const option = ref({
//     xAxis: {
//       type: 'category',
//       // data: ['A', 'B', 'C']
//       // 实际数据映射
//       data:data.value.map(d => d.name)
//     },
//     yAxis: {
//       type: 'value'
//     },
//     series: [
//       {
//         // data: [120, 200, 150],
//         data:data.value.map(d => d.value),
//         type: 'line'
//       }
//     ]
// });


</script>

<style>
.chart{
  height: 400px;
}
</style>

运行结果
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu 18.04 出现GLIBC_2.28 not found的解决方法(亲测有效)

关于/lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.28’ not found出现报错&#xff0c;建议不要使用源码包去编译并升级。在下文有分享一个使用官方的Debian软件包去升级使用的方法。仅供参考&#xff01; 环境 # uname -a Linux Ubuntu 5.4.0-144-generic #161~18.04.…

ubuntu server 18.04使用tensorflow进行ddqn训练全过程

0. 前言 需要使用ddqn完成某项任务&#xff0c;为了快速训练&#xff0c;使用带有GPU的服务器进行训练。记录下整个过程&#xff0c;以及遇到的坑。 1. 选择模板代码 参考代码来源 GitHub 该代码最后一次更新是Mar 24, 2020。 环境配置&#xff1a; python3.8 运行安装脚本…

超全的命令(代码)执行漏洞无回显的姿势总结(附带详细代码和测试分析过程)

目录 漏洞代码 突破方式 重定向 dnslog外部通信 burpsuite burpcollaborator外部通信 日志监听 netcat监听 反弹shell的各种姿势 漏洞代码 <?php shell_exec($_GET[a]); ?>这里使用了无回显的shell执行函数shell_exec&#xff0c;给html目录的权限是777 突破方…

C++之多态 虚函数表

多态 多态是在不同继承关系的类对象&#xff0c;去调用同一函数&#xff0c;产生了不同的行为。 需要区分一下&#xff1a;1、菱形虚拟继承&#xff0c;是在继承方式前面加上virtual&#xff1b; class Person {}; class Student : virtual public Person {}; class Teacher…

【深蓝学院】手写VIO第2章--IMU传感器--笔记

0. 内容 1. 旋转运动学 角速度的推导&#xff1a; 左ω∧\omega^{\wedge}ω∧&#xff0c;而ω\omegaω是在z轴方向运动&#xff0c;θ′[0,0,1]T\theta^{\prime}[0,0,1]^Tθ′[0,0,1]T 两边取模后得到结论&#xff1a; 线速度大小半径 * 角速度大小 其中&#xff0c;对旋转矩…

Spring Security 实现自定义登录和认证(1):使用自定义的用户进行认证

1 SpringSecurity 1.1 导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId> </dependency>1.2 编写配置类 在spring最新版中禁用了WebSecurityConfigurerAdapter…

04-项目立项:项目方案、可行性分析、产品规划、立项评审

文章目录4.1 项目方案立项阶段4.2 可行性分析4.3 产品规划4.4 立项评审4.4.1 立项说明书的主要内容4.4.2 立项评审流程章节总结4.1 项目方案 学习目标&#xff1a; 能够输出产品项目方案 项目开发设计流程的主要阶段&#xff1a; 立项阶段 → 设计阶段 → 开发阶段 → 测试阶…

机器学习 | 实验一:线性回归

文章目录&#x1f4da;描述&#x1f4da;数据&#x1f4da;监督学习问题&#x1f4da;二维线性回归&#x1f4da;理解J(θ)⭐️对应笔记 单变量线性回归多变量线性回归 &#x1f4da;描述 第一个练习将提供线性回归练习。这些练习已经在Matlab上进行了广泛的测试。但它们也应该…

Spring Boot @Aspect 切面编程实现访问请求日志记录

aop切面编程想必大家都不陌生了&#xff0c;aspect可以很方便开发人员对请求指定拦截层&#xff0c;一般是根据条件切入到controller控制层&#xff0c;做一些鉴权、分析注解、获取类名方法名参数、记录操作日志等。 在SpringBoot中使用aop首先是要导入依赖如下&#xff1a; …

软工2023个人作业二——软件案例分析

项目内容这个作业属于哪个课程2023年北航敏捷软件工程这个作业的要求在哪里个人作业-软件案例分析我在这个课程的目标是学习并掌握现代软件开发和项目管理技术&#xff0c;体验敏捷开发工作流程这个作业在哪个具体方面帮助我实现目标从软件工程角度分析比较我们所熟悉的软件&am…

Doris集成Spark读写的简单示例

Doris集成Spark读写的简单示例 文章目录Doris集成Spark读写的简单示例0、写在前面1、Spark Doris Connector介绍2、基本示例2.1 提前准备表和数据2.2 新建项目2.3 使用SQL方式进行读写2.3.1 代码2.3.2 相关Error2.4 使用DataFrame方式读写数据&#xff08;**batch**&#xff09…

CS5261typec转HDMI|CS5260typec转VGA视频转换方案参考设计与PCB板开发

CS5261typec转HDMI|CS5260typec转VGA视频转换方案参考设计与PCB板开发 CS5261 CS5260分别是Type-C转HDMI或者VGA高性能 视频转换芯片&#xff0c;CS5261 是Type-C转HDMI 4K30HZ转换芯片 CS5260是Type-C转VGA 转换芯片。CS5261与CS5260两种芯片的功能和参数特性如下&#xff1…

热乎的面经——初出茅庐

⭐️前言⭐️ 本篇文章记录博主与2023.03.04面试上海柯布西公司&#xff0c;一面所被问及的面试问题&#xff0c;回答答案仅供参考。 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主将持续更新学习记录收获&am…

EdgeYOLO学习笔记

EdgeYOLO学习笔记 EdgeYOLO: An Edge-Real-Time Object Detector Abstract 本文基于最先进的YOLO框架&#xff0c;提出了一种高效、低复杂度、无锚的目标检测器&#xff0c;该检测器可以在边缘计算平台上实时实现。为了有效抑制训练过程中的过拟合&#xff0c;我们开发了一种…

git分支

分支什么是分支在版本控制过程中&#xff0c;同时推进多个任务&#xff0c;为每个任务&#xff0c;我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来&#xff0c;开发自己分支的时候&#xff0c;不会影响主线分支的运行。对于初学…

DOM型XSS

DOM型XSSDOM是什么DOM型XSSDOM型XSS实操DOM是什么 DOM就是Document。 文档是由节点构成的集合&#xff0c;在DOM里存在许多不同类型的节点&#xff0c;主要有&#xff1a;元素节点、文本节点&#xff0c;属性节点。 元素节点&#xff1a;好比< body >< p >< h …

Go语言函数高级篇

Go语言函数高级篇1.高阶函数函数作为参数函数作为返回值2.匿名函数3.defer4.内置函数1.高阶函数 高阶函数分为函数作为参数和函数作为返回值两部分。 函数作为参数 函数可以作为参数&#xff1a; package mainimport "fmt"func add(x, y int) int {return x y }…

论文解析[11] CAT: Cross Attention in Vision Transformer

发表时间&#xff1a;2021 论文地址&#xff1a;https://arxiv.org/abs/2106.05786v1 文章目录摘要3 方法3.1 总体结构3.1.1 Inner-Patch Self-Attention Block3.1.2 Cross-Patch Self-Attention Block3.1.3 Cross Attention based Transformer结论摘要 使用图像patch来替换tr…

【Servlet篇4】cookie和session

在这一篇文章当中&#xff0c;我们提到了什么是cookie和session。 【网络原理8】HTTP请求篇_革凡成圣211的博客-CSDN博客HTTP的常见属性&#xff0c;URL&#xff0c;User-Agent&#xff0c;Refer,get 和post的区别https://blog.csdn.net/weixin_56738054/article/details/1291…

[数据集][VOC][目标检测]河道垃圾水面漂浮物数据集目标检测可用yolo训练-1304张介绍

数据集格式&#xff1a;Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件&#xff0c;仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数)&#xff1a;1304 标注数量(xml文件个数)&#xff1a;1304 标注类别数&#xff1a;1 标注类别名称:["trash"] …