【ECharts+Vue】学习笔记(快速入门版)

news2024/10/6 18:35:47

一、ECharts

1.1 什么是Echarts

ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求。提供了丰富的可视化图标,帮助你轻松实现大屏展示。

官网地址:Apache ECharts

1.2 ECharts的安装

  1. 直接下载

下载官网:https://echarts.apache.org/zh/download.html

如果不挑版本的话,菜鸟教程提供了4.7.0版本地址ECharts 安装 | 菜鸟教程 (runoob.com)

如果是开发学习的话,直接下载echarts.js,建议将代码放在js文件夹下,再在在html页面中<head>中 或其他地方 插入<script>标签,引入下载的js文件

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 使用下载好的包引入echarts.js-->
    <script src="js/echarts.js"></script>
</head>
  1. 使用CDN

Staticfile CDN(国内) : https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js

在html页面中<head>中 或其他地方 插入<script>标签,引入即可

<html>
<head>
    <meta charset="utf-8">
    <title>第一个 ECharts 实例</title>
    <!-- 使用CDN引入 echarts.js -->
    <script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>
</head>
  1. NPM方法

该方法需要先完成node.js 和NPM的配置,这一部分见2.2 VUE的安装和配置,这里只列举一下命令,具体使用方法在和VUE一起使用的时候会再详细介绍。

npm install echarts --save

1.3 demo1(直接使用ECharts 实现基本图表)

接着,我们来尝试一下ECharts的基本作图方法。

Step1. <header>中引入js

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 使用CDN引入 echarts.js -->
    <!--<script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script> -->
   
    <script src="js/echarts.js"></script>
</head>

Step2: <body> 中准备一个容器div,用来放置图表:

echarts是自适应的,会根据设置的容器的大小来进行绘图,所以不用担心不兼容的问题

<body>
    <!--准备一个容器div,放置图表-->
    <!--echarts 是自适应的, 会根据容器的大小来进行绘图,-->
    <div id="demo1" style="width: 600px;height: 400px" ></div>
</body>

Step3.1: 使用JavaScript代码正式绘制图表,先初始化一个绘制图表的echarts实例,指向该图表想要显示的位置(在哪儿绘制?)

    //初始化绘制图标的echarts实例,想要在那儿显示,参数就传哪个容器
    var myChart = echarts.init(document.querySelector('#demo1'))

Step3.2: 指定想要绘制的图表的配置项和数据,(绘制什么东西?)

    //指定图表的配置,(绘制什么东西?)
    var option = {
        //设置图表的标题
        title:{
            text:"echarts demo1"
        },
        // 图表的提醒框组件
        tooltip:{
            //触发方式  axis最标轴触发
            trigger:'axis'
        },
        // 图例
        legend:{
            data:['人数', '活跃人数']
        },
        // x轴的标记
        xAxis:{
            data:['vue','react','angular','jquery']
        },
        // Y轴
        yAxis:{}, //y为空对象,就代表显示数字,没有其他的
        // 具体的数据
        series:[
            {
                name:"人数", //与lengend 标记是对应的的
                type:"bar", //类型是 条形图
                data:[2000,1500,500,2200]//具体的数据

            },
            // 如果又很多种不同name的数据,可以用大括号进行包裹,逗号分割 ,{},{}
            {
                name:"活跃人数", //与lengend 标记是对应的的
                type:"bar", //类型是 条形图
                data:[1900,1200,400,1000]//具体的数据

            }
        ],
        // 设置颜色, 也可以不设置,我觉得默认的还挺好看的
        // color:['blue','red']
    }

Step3.3: 实例对象的设置配置,将option传给 step3.1中初始化的myCharts (让数据显示出来)

    // 实例对象的设置配置
    myChart.setOption(option)

整个代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 1. 引入js-->
    <script src="js/echarts.js"></script>
</head>
<body>
<!-- 2. 准备一个容器div,放置图表-->
<!--echarts 是自适应的, 会根据容器的大小来进行绘图,-->
<div id="demo1" style="width: 600px;height: 400px" ></div>

<!-- 3.使用JavaScript绘制图表-->
<script>
    //3.1 初始化绘制图标的echarts实例,想要在那儿显示,参数就传哪个容器
    var myChart = echarts.init(document.querySelector('#demo1'))
    
    //3.2 指定图表的配置,(绘制什么东西?)
    var option = {
        //设置图表的标题
        title:{
            text:"echarts demo1"
        },
        // 图表的提醒框组件
        tooltip:{
            //触发方式  axis最标轴触发
            trigger:'axis'
        },
        // 图例
        legend:{
            data:['人数', '活跃人数']
        },
        // x轴的标记
        xAxis:{
            data:['vue','react','angular','jquery']
        },
        // Y轴
        yAxis:{}, //y为空对象,就代表显示数字,没有其他的
        // 具体的数据
        series:[
            {
                name:"人数", //与lengend 标记是对应的的
                type:"bar", //类型是 条形图
                data:[2000,1500,500,2200]//具体的数据

            },
            // 如果又很多种不同name的数据,可以用大括号进行包裹,逗号分割 ,{},{}
            {
                name:"活跃人数", //与lengend 标记是对应的的
                type:"bar", //类型是 条形图
                data:[1900,1200,400,1000]//具体的数据

            }
        ],
        // 设置颜色, 也可以不设置,我觉得默认的还挺好看的
        // color:['blue','red']
    }

    // 3.2 实例对象的设置配置
    myChart.setOption(option)

</script>

</body>
</html>

实现效果如下图所示(数据是瞎写的):

二、 Vue

2.1 什么是Vue

Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化编程模型,帮助开发者高效地开发用户界面。

官网:Vue.js - 渐进式 JavaScript 框架 | Vue.js (vuejs.org)

官方文档:http://vuejs.org/v2/guide/syntax.html

中文文档: https://v2.cn.vuejs.org/v2/guide/

2.2 Vue 的安装和配置

参考教程:Vue安装及环境配置、开发工具_袁小萌同学的博客-CSDN博客_下载vue

感觉这个教程完胜!本菜菜就不写了。。

2.3 demo2(在Vue2中使用echarts)

Step1: 引入echarts

a. 建好Vue项目后,在终端用npm安装一下echarts

 npm install echarts --save

加入--save,就可以在package.json中看到 echarts了

b. 在App.vue中 引入echarts

import * as echarts from 'echarts' // echarts5 以上用这个代码导入
import echarts from 'echarts' //echarts5 以下 用这行导入

Step2: 在<template>的<div>中准备一个容器,用来显示图表

    <div id="demo2" style="width: 600px;height: 400px"></div>

Step3.1 : 初始化 echarts对象的配置

在vue 的 mouted中,来初始化一个echarts实例,并将div传给他

        mounted: function () {
            // 3.1 初始化绘制图标的echarts 实例
            var myChart = echarts.init(document.querySelector('#demo2'))

        }

Step3.2: 设置数据信息,指定图表的配置

在data中,来设置图表的基本信息

        data() {
            return {
                option: {
                    title: {
                        text: "echarts demo1" //title里不能直接写字符串
                    },
                    tooltip: "",  //提示框
                    legend: {
                        data: ['人数']
                    },
                    xAxis: { //x轴的标记
                        data: ['vue', 'react', 'angular', 'jquery']
                    },
                    yAxis: {}, //y为空对象,就代表显示数字,没有其他的
                    series: [ //数据写在这里
                        {
                            name: "人数", //与lengend 标记是统一的
                            type: "bar", //类型是 条形图
                            data: [2000, 1500, 500, 2200]
                        }
                    ]
                }
            }
        },

Step3.3 实例化echarts对象,将图表配置信息传递过去

位置与step3.1 的一样,这里把 data中的 option传递过来

        mounted: function () {
            // 3.1初始化绘制图标的echarts 实例
            var myChart = echarts.init(document.querySelector('#demo2'))
            // 3.3 对实例对象设置配置;
            myChart.setOption(this.option)

        }

可以发现总体步骤与只是用echarts的时候相对应,这里我们扩充一下,增加一个按钮来改变图表中的数据

Step4: 增加一个按钮

    <button @click="changeOption">修改图标数据</button>

Step5: 动态改变option的值

在methods里增加对应的方法(例如button点击的时候的方法),在该方法中改变data中的option数据,或者只改变option中的需要改变的值,例如this.option.series[0].data = [3000, 1500, 500, 1200]

    methods: {
            // 5. 写一个方法改变option的值,方法名对应button按钮的click
            changeOption() {
                console.log("1212");
                this.option = {
                    title: {
                        text: "echarts demo1" //title里不能直接写字符串
                    },
                    tooltip: "",  //提示框
                    legend: {
                        data: ['人数']
                    },
                    xAxis: { //x轴的标记
                        data: ['vue', 'react', 'angular', 'jquery']
                    },
                    yAxis: {}, //y为空对象,就代表显示数字,没有其他的
                    series: [ //数据写在这里
                        {
                            name: "人数", //与lengend 标记是统一的
                            type: "bar", //类型是 条形图
                            data: [3000, 1500, 500, 1200]
                        }
                    ]
                }
            }
        }

Step6: 监听option的改变,再次对echarts进行初始化和实例化

        watch: {
            option () {
                //再次对option进行初始化和配置
                // 初始化绘制图标的echarts 实例
                var myChart = echarts.init(document.querySelector('#demo2'))
                //对实例对象设置配置;
                myChart.setOption(this.option)
            }
        }

下图是各个部分之间的位置关系,可以总体上把握整个开发的步骤:

完整代码如下:

<template>
  <div id="app">
    <!-- 2. 准备一个容器装图表   -->
    <div id="demo2" style="width: 600px;height: 400px"></div>
    <!-- 4. 增加一个按钮   -->
    <button @click="changeOption">修改图标数据</button>
    <router-view/>
  </div>
</template>

<script>
    // 1. 导入 echarts
    import * as echarts from 'echarts'// echarts5 以上用这个代码导入
    //import echarts from 'echarts' //echarts5 以下 用这行导入

    export default {

        name: 'App',
        // 3. 初始化并实例化 echarts
        // 3.2: 设置数据信息,指定图表的配置
        data() {
            return {
                option: {
                    title: {
                        text: "echarts demo1" //title里不能直接写字符串
                    },
                    tooltip: "",  //提示框
                    legend: {
                        data: ['人数']
                    },
                    xAxis: { //x轴的标记
                        data: ['vue', 'react', 'angular', 'jquery']
                    },
                    yAxis: {}, //y为空对象,就代表显示数字,没有其他的
                    series: [ //数据写在这里
                        {
                            name: "人数", //与lengend 标记是统一的
                            type: "bar", //类型是 条形图
                            data: [2000, 1500, 500, 2200]
                        }
                    ]
                }
            }
        },
        // 3.1  和3.3 初始化和实例化echarts
        mounted: function () {
            // 3.1初始化绘制图标的echarts 实例
            var myChart = echarts.init(document.querySelector('#demo2'))
            // 3.3 对实例对象设置配置;
            myChart.setOption(this.option)

        },

        // 5. 写一个方法改变option的值,方法名对应button按钮的click
        methods: {
            // 5. 写一个方法改变option的值,方法名对应button按钮的click
            changeOption() {
                console.log("1212");
                this.option = {
                    title: {
                        text: "echarts demo1" //title里不能直接写字符串
                    },
                    tooltip: "",  //提示框
                    legend: {
                        data: ['人数']
                    },
                    xAxis: { //x轴的标记
                        data: ['vue', 'react', 'angular', 'jquery']
                    },
                    yAxis: {}, //y为空对象,就代表显示数字,没有其他的
                    series: [ //数据写在这里
                        {
                            name: "人数", //与lengend 标记是统一的
                            type: "bar", //类型是 条形图
                            data: [3000, 1500, 500, 1200]
                        }
                    ]
                }
            }
        },

        // 6.监听changeOption操作
        watch: {
            option () {
                //再次对option进行初始化和配置
                // 初始化绘制图标的echarts 实例
                var myChart = echarts.init(document.querySelector('#demo2'))
                //对实例对象设置配置;
                myChart.setOption(this.option)
            }
        }
    }
</script>

<style>
  #app {
    font-family: 'Avenir', Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-align: center;
    color: #2c3e50;
    margin-top: 60px;
  }
</style>

(运行的方法,在终端进入到该项目,输入npm run dev即可运行)

实现效果如图所示:

点击修改图表按钮后,数据会发生改变

三、ECharts 自定义样式

3.1 echarts 图表 的核心组件

知道每一部分对应的名字之后,就是去用这些东西,最重要的是,要学会去官网查看配置项的各种属性,根据需要选择相应的属性进行进行设置。

官网文档链接:Documentation - Apache ECharts

参考:
课程链接: https://www.bilibili.com/video/BV13h411t7b1?p=1&vd_source=6d4a7b47d5c7a857efbddc5be27d8852

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

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

相关文章

分布式之搜索解决方案es

一 ES初识 1.1 概述 ElasticSearch&#xff1a;是基于 Lucene 的 Restful 的分布式实时全文搜索引擎&#xff0c;每个字段都被索引并可被搜索&#xff0c;可以快速存储、搜索、分析海量的数据。是ELK的一个组成,是一个产品&#xff0c;而且是非常完善的产品&#xff0c;ELK代表…

webRtc播放rtsp视频流(vue2、vue3+vite+ts)

一、下载webRtc 开发环境用的win10版本的。 github上直接下载&#xff0c;速度感人。 Releases mpromonet/webrtc-streamer GitHub 提供资源下载&#xff0c;0积分 https://download.csdn.net/download/weiqiang915/87700892 二、启动&#xff0c;测试 webrtc-streame…

PDD滑块分析

文章目录 1.流程分析2.关键点分析3.结果展示 声明&#xff1a;本文只作学习研究&#xff0c;禁止用于非法用途&#xff0c;否则后果自负&#xff0c;如有侵权&#xff0c;请告知删除&#xff0c;谢谢&#xff01; 欢迎大佬加群一起交流哇&#xff08; Q群&#xff1a;985475126…

基于web的电动车租赁管理系统C#+asp.net+sqlserver

具体功能如下&#xff1a;个人信息管理&#xff1a;实现登陆后对个人信息进行修改和查看的功能。 修改登录密码&#xff1a;实现登陆后对个人密码进行修改的功能。 申请租车订单&#xff1a;客户用户登陆后可以申请租车订单。同时可以查看租赁订单信息。 售后评价管理&#xff…

深度学习中的一阶段目标检测

博主简介 博主是一名大二学生&#xff0c;主攻人工智能研究。感谢让我们在CSDN相遇&#xff0c;博主致力于在这里分享关于人工智能&#xff0c;c&#xff0c;Python&#xff0c;爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主&#xff0c;博主会继续更新的&#xff0c…

飞行机器人专栏(十二)-- 提高机器人系统可靠性的关键要素与实践

本文将介绍如何在机器人系统的开发过程中融入关键要素&#xff0c;从而提高系统的可靠性。我们将从需求分析、设计阶段、开发与调试、验证与优化、迭代与升级等方面进行详细讨论&#xff0c;并提供示例代码以帮助您更好地理解相关概念。 目录 一、需求分析与规划 二、…

XML与JSON知识学习

目录 XML简介 XML的结构 小结 使用DOM 练习 小结 使用SAX 练习 小结 使用Jackson 练习 小结 使用JSON 反序列化 练习 小结 XML简介 XML是可扩展标记语言&#xff08;eXtensible Markup Language&#xff09;的缩写&#xff0c;它是一种数据表示格式&#xf…

管理后台项目-01-项目模板-登录相关-路由搭建-品牌相关

目录 1-项目模板 1.1-项目目录结构说明​编辑 1.2-前置项目相关配置 2-登录相关开发 3-路由的搭建 4-品牌管理 4.1-品牌列表 4.2-新增/修改品牌 4.3-删除品牌名称 1-项目模板 前端的后台管理系统我们采用github上有的成熟项目作为模板来开发&#xff1b; 简洁版:GitHu…

【CocosCreator入门】CocosCreator组件 | ScrollView(滚动视图)组件

Cocos Creator 是一款流行的游戏开发引擎&#xff0c;具有丰富的组件和工具&#xff0c;其中的ScrollView组件是一种用于实现滚动视图效果的重要组件。它可以让我们在游戏中实现各种滚动视图效果&#xff0c;例如列表、地图等。 目录 一、组件介绍 二、组件属性 三、详细说明…

java+mysql crm客户关系管理系统的设计与实现

在众多网站开发技术中,JSP支持现在绝大多数操作平台,它在代码执行效率、代码可移植性及组建的应用上均优越于其他动态网页技术。因此,本文研究了基于JSP技术的系统动态网站。根据JSP的原理按照网站时机原则以及步骤,对动态网站的定义了目标、分析了网站功能需求,进行了结构…

windows 10 下安装配置mysql8.0 (保姆级教程)

文章目录 一、MySQL 8.0的基本信息二、MySQL 8.0的系统要求三、MySQL 8.0的安装步骤3.1. 下载MySQL 8.03.2. 运行MySQL安装文件3.3. 选择安装类型3.4. 配置MySQL Server3.5 mysql shell 的使用 四、总结 一、MySQL 8.0的基本信息 MySQL是一种开放源代码的关系型数据库管理系统…

2023Java高频面试题,jvm虚拟机体系结构,收藏必看!

1. 前言 最近很多小伙伴在找工作. 在面试中, 面试官经常问到的一个面试题是 : 请说出Jvm虚拟机体系结构? 小伙伴们, 一般会说堆, 栈.....然后面试官问, 那还知道其他的吗, 然后小伙伴们就语塞了....... 面试后来问千锋健哥, 所以健哥在这里为大家来讲讲这个Jvm虚拟机体系结…

【一起啃书】《机器学习》第三章 线性模型

第三章 线性模型 3.1 基本形式 给定由 d d d个属性描述的示例 x ( x 1 ; x 2 ; . . . ; x d ) {\bf{x}} ({x_1};{x_2};...;{x_d}) x(x1​;x2​;...;xd​)&#xff0c;其中 x i x_i xi​是 x \bf{x} x在第 i i i个属性上的取值&#xff0c;线性模型试图学得一个通过属性的线性…

瀚高股份吕新杰:创新开源双驱动,躬耕国产数据库

作者 | 伍杏玲 近年来&#xff0c;国际形势不断变幻&#xff0c;也给人们带来巨大警示&#xff1a;关键核心技术是买不来、讨不来的&#xff0c;中国科技企业需寻找研发自强之路。 瀚高基础软件股份有限公司&#xff08;简称瀚高股份&#xff09;专注数据库十八年&#xff0c;始…

信息安全-reNgine-Web应用渗透测试的自动化网络侦察框架

目录 reNgine介绍 工具运行机制 安装部署 安装rengine 安装python依赖包 合并Django前端静态文件 安装Postgresql 创建reNgine账号 启动reNgine 启动reNgine成功 启动reNgine后在浏览器访问&#xff1a;http://localhost:8000/ 这时会发现前端静态资源加载失败&…

【自然语言处理】【大模型】极低资源微调大模型方法LoRA以及BLOOM-LORA实现代码

极低资源微调大模型方法LoRA以及BLOOM-LORA实现代码 相关博客 【自然语言处理】【大模型】极低资源微调大模型方法LoRA以及BLOOM-LORA实现代码 【自然语言处理】【大模型】DeepMind的大模型Gopher 【自然语言处理】【大模型】Chinchilla&#xff1a;训练计算利用率最优的大语言…

Froala V4.0.18 Crack Froala 编辑器

Froala V4.0.18&#xff1a;复制和粘贴图像变得更好&#xff0c;还有更多&#xff01; 2023 年 3 月 25 日最忠实用户编辑器&#xff0c;新版本发表评论 Froala Editor团队很高兴地宣布发布Froala Editor 4.0.18。这个新版本在质量和稳定性方面有很多改进&#xff0c;并修复了…

优雅的处理sping项目全局异常

全局异常处理 为了达到系统的各个模块中都能够共用同一个异常处理逻辑&#xff0c;避免代码重复和错误。在Spring框架中&#xff0c;可以通过全局异常处理来捕获应用程序中抛出的异常&#xff0c;并根据需要进行处理。 ControllerAdvice ControllerAdvice是Spring MVC框架中…

TCP CUBIC 动力学

曾陪经理一起面试&#xff0c;问过一个问题&#xff1a; CUBIC 的公式&#xff1a; W ( x ) C ( x − K ) 3 W m a x W(x)C(x−K)^3W_{max} W(x)C(x−K)3Wmax​ 其中 x 是什么意思&#xff1f; 本意是想候选人回答 “x 是绝对时间”&#xff0c;然后我会接着问 “这个 x …

[SWPUCTF] 2021新生赛之(NSSCTF)刷题记录 ②

[SWPUCTF] 2021 新生赛&#xff08;NSSCTF刷题记录wp&#xff09; [SWPUCTF 2021 新生赛]no_wakeup[鹤城杯 2021]easy_crypto[suctf 2019]EasySQL[ZJCTF 2019]NiZhuanSiWei[强网拟态 2021]拟态签到题[BJDCTF 2020]easy_md5[SWPUCTF 2021 新生赛]easyupload3.0[SWPUCTF 2021 新生…