vue 中,echarts的使用,简单入门

vue 中,echarts的使用,简单入门

原作者哔哩哔哩视频 感谢 多多支持
效果图

vue 中,echarts的使用,简单入门

首先创建一个页面组件,创建三个div,分别来使用折线图,柱状图,扇形图

  //折线图

    //柱状图

    //扇形图

在setup中使用

import {getLineData,getBarData,getFanData} from '@/tool/echarts'
export default {
    name: "Home",
    components: { },
    setup(){
        const {proxy} = getCurrentInstance()
        // 关于echarts 表格的渲染
        function getEcharts(){
            // 折线图
            getLineData(proxy.$refs['echartLine'])
            // 柱状图
            getBarData(proxy.$refs['echartBar'])
            // 扇形图
            getFanData(proxy.$refs['echartFan'])
        }

        // 进入组件之后的回调
        onMounted(() => {
            getEcharts()
        })
    }

测试的echarts.js ;这里的数据都是伪造的,主要是来看看该怎么使用这些数据

import * as echarts from 'echarts';
import {reactive} from 'vue';

// 模拟数据的产生

// 折现图的数据*************************************************
let data = []
for(let i = 0; i < 7;i++){
    let paoject = {
        Book: Math.floor(Math.random() * 5000),
        Commodity: Math.floor(Math.random() * 5000),
        Blog: Math.floor(Math.random() * 5000),
        ShuiSanYa: Math.floor(Math.random() * 5000),
    }
    data.push(paoject)
}
const porjectDataAPI = {
    xData:['2016','2017','2018','2019','2020','2021','2022'],
    data:data
}

// 柱状图的数据*************************************************
let data1 = []
for(let i = 0; i < 7;i++){
    let user = {
        active: Math.floor(Math.random() * 1000),
        inertia: Math.floor(Math.random() * 1000),
    }
    data1.push(user)
}
const userDataAPI = {
    xData:['星期一','星期二','星期三','星期四','星期五','星期六','星期天'],
    data: data1
}

// 扇形图的数据*************************************************
let data2 = []
let xData = ['Book','Commodity','Blog','ShuiSanYa']
for(let i = 0; i < 4;i++){
    let project = {
        name: xData[i],
        value: Math.floor(Math.random() * 100),
    }
    data2.push(project)
}
let project1DataAPI = reactive({
    data:data2
})

// 关于echarts *************************************************
let xOptions = reactive({
    //图例颜色
    textStyle:{
        color:"#333"
    },
    grid:{
        left: "20%"
    },
    //提示框
    tooltip:{
        trigger:"axis",
    },
    xAxis:{
        type:"category",
        data:[],
        axisLine:{
            lineStyle:{
                color:"#17b3a3"
            }
        },
        axisLabel:{
            interVal:0,
            color:"#333"
        },
    },
    yAxis:[
        {
            type:"value",
            axisLine:{
                lineStyle:{
                    color:"#17b3a3"
                }
            }
        }
    ],
    color:["#ef5b9c","#1d953f","#694d9f","#ffd400"],
    series:[]
});
let pieOptions = reactive({
    tooltip:{
        trigger:"item",
    },
    color:[
        "#ef5b9c","#1d953f","#694d9f","#ffd400"
    ],
    series:[]
})

//折现图的渲染*************************************************
let porjectData = reactive({
    xData:[],
    series:[]
})
export const getLineData = (dom) => {
    porjectData.xData = porjectDataAPI.xData
    const keyArray = Object.keys(porjectDataAPI.data[0])
    const series = []
    keyArray.forEach((key) => {
        series.push({
            name:key,
            data:porjectDataAPI.data.map(item=>item[key]),
            type:'line'
        })
    })
    porjectData.series = series;
    xOptions.xAxis.data = porjectData.xData
    xOptions.series = porjectData.series
    // 进行渲染
    let Echarts = echarts.init(dom)
    Echarts.setOption(xOptions)
}

// 柱状图的渲染*************************************************
let userData = reactive({
    xData:[],
    series:[]
})
export const getBarData = (dom) => {
    userData.xData = userDataAPI.xData
    userData.series = [
        {
            name:"不活跃用户",
            data:userDataAPI.data.map((item) => item.inertia),
            type:"bar"
        },
        {
            name:"活跃用户",
            data:userDataAPI.data.map((item) => item.active),
            type:"bar"
        }
    ]

    xOptions.xAxis.data = userData.xData
    xOptions.series = userData.series
    // 进行渲染
    let Echarts = echarts.init(dom)
    Echarts.setOption(xOptions)
}

// 扇形图的渲染*************************************************
let project1Data = reactive({
    series:[]
})
export const getFanData = (dom) => {
    project1Data.series = [
        {
            data:project1DataAPI.data,
            type:'pie'
        }
    ]
    pieOptions.series = project1Data.series
    let Echarts = echarts.init(dom)
    Echarts.setOption(pieOptions)
}

Original: https://www.cnblogs.com/shuisanya/p/16630336.html
Author: 水三丫
Title: vue 中,echarts的使用,简单入门

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/581454/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Python闭包

    前言 学习Python的单例实现的时候,遇到了下面这样的代码。很不理解为什么局部变量 _instance没有重新初始化。后来看到有人说这是闭包,于是又去了解了下 闭包。没想到闭包竟…

    Linux 2023年6月7日
    098
  • Redis 主从复制

    Redis主从复制的原理 当建立主从关系时,slave配置slaveof 当redis生成dump.rdb文件时,工作过程如下 redis主进程fork一个子进程 fork出来的子…

    Linux 2023年5月28日
    094
  • 保姆教程系列二、Nacos实现注册中心

    前言: 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 上篇我们介绍到 保姆教程系列一、Linux搭建Nacos 注册中心原理 一、环境准备 Java版本:1.8+ (L…

    Linux 2023年6月14日
    076
  • 面试连环炮系列(二十七):如何保证缓存与数据库的数据一致性

    1. 如何保证缓存与数据库的数据一致性? 要保持数据强一致性,只能将读请求和写请求串行化,在同一个内存队列里执行。但是串行化会导致系统的吞吐量大幅度降低,多用几倍的机器去支撑线上的…

    Linux 2023年6月6日
    086
  • C++ 之处理模板化基类的成员名称

    问题描述 假设有下面这么一段简单的代码,其中定义了两个类模板,一个基类 Animal,一个派生类 Dog: #include #include using namespace st…

    Linux 2023年6月7日
    099
  • Linux之虚拟专用网络—VPN

    404. 抱歉,您访问的资源不存在。 可能是URL不正确,或者对应的内容已经被删除,或者处于隐私状态。 [En] It may be that the URL is incorre…

    Linux 2023年5月27日
    0110
  • vsftpd 操作手册-完整版

    vsftpd 目录 – ftp 简介 – vsftpd 简介 – vsftpd 安装&卸载 – vsftpd 配置文件 – vsftpd 认证模板 – vsftpd 配置模…

    Linux 2023年6月13日
    085
  • 免外围电路ESP32/ESP8266系列单片机串口一键下载方案

    一、概述 CH340X、CH343、CH342等USB转串口芯片支持免外围电路ESP32/ESP8266等单片机串口一键下载功能,对此类支持多模式启动的单片机,无需外围三极管等逻辑…

    Linux 2023年6月7日
    0132
  • 【学习笔记】week01

    1、按系列罗列Linux 的发行版,并描述不同发行版之间的联系与区别 (1) Slackware : l SUSE Linux 软件包齐全 (2) Debian : l ubunt…

    Linux 2023年5月27日
    076
  • nslookup:command not found的解决办法

    nslookup:command not found的解决办法 通过nslookup查看DNS记录,在这里遇到了一个小插曲,nslookup:command not found(未…

    Linux 2023年6月7日
    083
  • 脚本小子学习–vulnhub靶机DC8

    @ 前言 一、环境搭建 二、目标和思路 三、实际操作 1.信息收集 2.getshell 总结 前言 通过一些靶机实战练习,学习使用现有的工具来成为脚本小子。 一、环境搭建 靶机:…

    Linux 2023年6月7日
    0130
  • npm 和 maven 使用 Nexus3 私服 | 前后端一起学

    前文《Docker 搭建 Nexus3 私服 》介绍了在 docker 环境下安装 nexus3 以及 nexus3 的基本操作和管理,本文分别介绍 npm(前端)和 maven(…

    Linux 2023年6月7日
    073
  • Go-goroutine

    进程和线程说明: (1)进程就是程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位。 (2)线程是进程的一个执行实例,是程序执行的最小单位,它是比进程更小的能独立运…

    Linux 2023年6月8日
    095
  • centos7 安装MariaDB 10.6

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 背景 centos7使用yum install mariadb-server命令安装的默认版本是5.5的,这是因为系统默认源只有…

    Linux 2023年5月27日
    0371
  • linux应急响应具体操作

    第一件事情应该是切断网络,但是有些环境不允许网络断开,就只能跳过这一步。 1、查看历史命令 ​发现Linux 服务器被攻击,要做应急响应,登录主机后的第一件事,就是查看主机的历史命…

    Linux 2023年6月14日
    099
  • PWN学习总结

    一、栈溢出原理 什么是栈溢出?栈溢出就是缓冲区溢出的一种。 由于缓冲区溢出而使得有用的存储单元被改写,往往会引发不可预料的后果。程序在运行过程中,为了临时存取数据的需要,一般都要分…

    Linux 2023年6月8日
    097
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球