echarts高级应用

目录

一、显示相关

1.1、主题

1.1.1、内置主题

1.1.2、自定义主题

1.2、调色盘和颜色渐变

1.2.1、主题调色盘<全局调色盘<局部调色盘

1.2.2、线性渐变(linear)、径向渐变(radial)

1.3、直接样式和高亮样式

1.3.1、直接样式

1.3.2、高亮样式

1.4、图表自适应

二、动画的使用

2.1、图表加载动画

2.2、图表增量动画( myChart.setOption)

2.3、图表动画的配置项(animation、animationDuration、animationEasing、animationThreshold)

三、总结(交互API)

3.1、全局Echarts对象的常用方法

3.1.1、init()

3.1.2、registerTheme()

3.1.3、registerMap()

3.1.4、connect()

3.2、echartsInstance对象的常用方法

3.2.1、setOption

3.2.2、resize

3.2.3、on\off

3.2.4、dispatchAction

3.2.5、clear

3.2.6、dispose

一、显示相关

1.1、主题

1.1.1、内置主题

      init方法有两个参数: 第一个参数是一个dom节点,第二个参数是使用的主题;

      默认两套主题: light、dark

let myChart = this.$echarts.init(document.getElementById("main1"),'light');
let myChart = this.$echarts.init(document.getElementById("main1"),'dark');

1.1.2、自定义主题

echarts官网的顶部栏:下载下拉栏中的主题下载,进入后找到定制主题按钮进去,左侧点击下载主题按钮,普通html项目选择JS版本,得到infographic.js文件,放入项目文件夹中。vue项目则选择JSON 版本下载。然后在文件里改成自己想要的颜色即可!或者在主题编辑器”里选好再下载!

网址:主题编辑器 - Apache ECharts

//================引入=======================
import * as ets from "echarts";
import theme from "../../utils/theme.json";
//=================方法里使用=======================
ets.registerTheme("theme", theme); // 注册主题(参数1: 使用时的别名 参数2: 主题配置文件)
let myChart = ets.init(document.getElementById("main1"), theme);

1.2、调色盘和颜色渐变

调色盘是一组颜色,图形、系列会自动从其中选择颜色。

1.2.1、主题调色盘<全局调色盘<局部调色盘

(1)、主题调色盘(以“JS版本”为例):

(1)、全局调色盘:

color: ["red", "green", "blue", "skyblue", "purple"],
xAxis: {.......},
yAxis: {.......},

(1)、局部调色盘:

        series: [
          {
            type: "pie", //决定图标类型(bar、line、pie)
            color: ["red", "green", "blue", "skyblue", "purple"],
          },
        ],

1.2.2、线性渐变(linear)、径向渐变(radial)

        series: [
          {
           itemStyle: {
              color: {
                type: "linear",
                x: 0,
                y: 0,
                x2: 0,
                y2: 1,
                colorStops: [
                  {
                    offset: 0, //0%处颜色
                    color: "red",
                  },
                  {
                    offset: 1, //100%处颜色
                    color: "blue",
                  },
                ],
              },
              // color: {
              //   type: "radial",
              //   x: 0.5,
              //   y: 0.5,
              //   r: 0.5,
              //   colorStops: [
              //     {
              //       offset: 0, //0%处颜色
              //       color: "red",
              //     },
              //     {
              //       offset: 1, //100%处颜色
              //       color: "blue",
              //     },
              //   ],
              // },
            },
          },
        ],

1.3、直接样式和高亮样式

1.3.1、直接样式

itemStyle、textStyle、lineStyle、areaStyle、label

1.3.2、高亮样式

emphasis中包裹itemStyle、textStyle、lineStyle、areaStyle、label

以饼图为例:

pieData: [
        {
          name: "淘宝",
          value: 20,
          itemStyle: { color: "yellow" },
          label: { color: "green" },
          emphasis: {
            itemStyle: { color: "purple" },
            label: { color: "red" },
          },
        },
        { name: "京东", value: 30 },
        { name: "华为", value: 20 },
        { name: "拼多多", value: 10 },
        { name: "唯品会", value: 20 },
      ],
series: [
          {
            type: "pie",
            data: this.pieData,
          },
        ],

1.4、图表自适应

  监听window窗口大小变化的事件里,调用echarts实例对象的resize方法 

      // window.onresize = function () {
      //   myChart.resize();
      // };
      window.onresize =myChart.resize

二、动画的使用

2.1、图表加载动画

显示加载动画(myChart.showLoading())、隐藏加载动画(myChart.hideLoading())

    getDayAttendanceRate() {
      let myChart = this.$echarts.init(this.$refs.myChart);
      myChart.showLoading();//获取数据前,显示加载动画
      keepCountApi
        .getDayAttendanceRate()
        .then((res) => {
          if (res.status) {
            myChart.hideLoading();//当服务器数据获取成功后,隐藏加载动画
            this.optionFun(res.data);
          } else {
            this.$message.error(res.msg);
          }
        })
        .catch(() => {});
    },

2.2、图表增量动画( myChart.setOption)

  数据的更新都通过setOption实现,echarts会自动找到数组之间的差异然后通过‘动画’去表现数据的变化。

  mounted() {
    this.optionFun(this.list);
  },
  methods: {
    updateData() {//修改数据
      let newArr = [
        { time: "一班", value: 100 },
        { time: "二班", value: 200 },
        { time: "三班", value: 290 },
        { time: "四班", value: 300 },
        { time: "五班", value: 110 },
      ];
      this.optionFun(newArr);
    },
    addData() {//增加数据
      this.list.push({ time: "增加班级", value: 160 });
      this.optionFun(this.list);
    },
    optionFun(arr) {
      this.option = {
        xAxis: {
          type: "category",
          data: arr.map((d) => d.time),
        },
        yAxis: {
          type: "value", //数值轴
        },
        series: [
          {
            barWidth: 30,
            type: "bar",
            data: arr.map((d) => d.value),
          },
        ],
      };
      let myChart = this.$echarts.init(this.$refs.echartsMain);
      myChart.setOption(this.option);//因为执行了它,数据才会变化!
      window.onresize = myChart.resize;
    },
  },

2.3、图表动画的配置项(animation、animationDuration、animationEasing、animationThreshold)

        animation: true,//是否开启动画
        // animationDuration:7000,//动画时长
        animationDuration: function (arg) {
          return 2000 * arg;
        },
        animationEasing:'bounceOut',//缓动动画("回弹效果")
        animationThreshold:7,//动画阈值(元素数量>该值时会关闭动画)
        xAxis: {......},
        yAxis: {......},

三、总结(交互API)

网址:Documentation - Apache ECharts

3.1、全局Echarts对象的常用方法

全局Echarts对象是引入echarts.js文件之后就可以直接使用的

3.1.1、init()

初始化Echarts实例对象,使用主题

3.1.2、registerTheme()

注册主题,只有注册过的主题,才能在init方法中使用该主题

3.1.3、registerMap()

(1)、注册地图数据

      $.get("json/map/china.json", function (chinajson) {
        echarts.registerMap("china", chinajson);
      });

(2)、geo组件使用地图数据

      var option = {
        geo: {
          type: "map",
          map: "china",
        },
      };

3.1.4、connect()

  假设一个页面中有多个独立的图表,每个图标都会对应一个echarts实例对象,那么connect()可以实现多图关联,实际使用场景如下:

保存图片的自动拼接、刷新按钮、重置按钮、提示框联动、图例选择、数据范围修改....

    echarts.connect([myChart,myChart2])

3.2、echartsInstance对象的常用方法

echartsInstance对象是通过echarts.init方法调用之后得到的

3.2.1、setOption

  (1)、设置或修改图表实例的配置项以及数据

  (2)、可以多次调用该方法,会合并新旧数据(见增量动画)

3.2.2、resize

  (1)、重新计算和绘制图表

  (2)、一般和window对象的resize事件结合使用(见图表自适应)

3.2.3、on\off

  (1)、绑定或解绑事件处理函数

  (2)、鼠标事件、Echarts事件

myChart.on('click', function (params) {
    console.log(params);
});
myChart.off('click')

3.2.4、dispatchAction

  (1)、触发某些行为

  (2)、使用代码模拟用户的行为

     myChart.dispatchAction({
        type:'highlight',//事件类型
        seriesIndex:0,//图表索引
        dataIndex:1//图表中哪一项高亮
      })

3.2.5、clear

  (1)、清空实例中所有的组件和图表(myChart.clear()

  (2)、清空后可以再次setOption

3.2.6、dispose

   销毁实例myChart.dispose()),销毁后无法再次setOption

有个水球效果,可以参考: https://www.cnblogs.com/tu-0718/p/16722158.html

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java break细节(标签)

Java break细节(标签)continue也可以使用标签 break是用来跳出循环的。 当有多重循环时&#xff0c;可以配合标签来使用&#xff0c;决定跳出那一重循环。 尽量不要使用标签 1、不代标签时&#xff0c;默认跳出 break 所在的那重循环&#xff1a; 可见在 i 3 时&#xff0…

【后端篇】后端开发工程师-面试攻略

后端开发在系统、软件开发的生命周期过程中有着至关重要的作用&#xff0c;下面就简单聊聊后端开发工程师需要具备的一些知识和技能。 一、扎实的基础知识 作为一名后端开发工程师&#xff0c;对编程语言的深刻理解是必不可少的。无论是 Java、Python、C 等&#xff0c;都需要…

从这些原理中,读懂迅软DSE加密系统

加密技术是保护信息安全的系统&#xff0c;通过对原始数据进行加密&#xff0c;使得未经授权的人无法读取这些信息。 一、迅软DSE加密系统干什么用的&#xff1f; ★保护隐私&#xff1a;加密确保个人、机构的敏感信息在传输和存储过程中不被未授权的人访问。 ★防止数据泄露…

双指针+前缀和,蓝桥云课 近似gcd

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 0近似gcd - 蓝桥云课 (lanqiao.cn) 二、解题报告 1、思路分析 考虑近似gcd的子数组的特点&#xff1a;不为g的倍数的数字个数小于等于1 我们用前缀和pre[]来存储不为g的倍数的数字个数 那么枚举左端点l&a…

AIGC降重:如何2分钟降低论文AI率和查重率?推荐使用SpeedAI科研小助手

确保学术论文的独立性与诚信性&#xff0c;对于学业的成就及学位的获取至关重要&#xff0c;其中&#xff0c;论文的人工智能查重与降低AIGC相似度扮演着核心角色。 常规的查重手段主要围绕查重软件的运用和个体的自行审查&#xff1b;而降重则通常通过语句重组、同义替换、内…

Leetcode算法题笔记(3)

目录 矩阵101. 生命游戏解法一解法二 栈102. 移掉 K 位数字解法一 103. 去除重复字母解法一 矩阵 101. 生命游戏 根据 百度百科 &#xff0c; 生命游戏 &#xff0c;简称为 生命 &#xff0c;是英国数学家约翰何顿康威在 1970 年发明的细胞自动机。 给定一个包含 m n 个格子…

Thingsboard规则链:Customer Details节点详解

在物联网&#xff08;IoT&#xff09;平台Thingsboard的规则引擎体系中&#xff0c;Customer Details节点是一个功能强大的组件&#xff0c;它专为处理与客户&#xff08;Customer&#xff09;实体相关的综合信息而设计。这个节点不仅能够读取客户的基本属性&#xff0c;还能提…

【简单介绍下idm有那些优势】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

人工智能在乳腺癌领域的最新进展|【医学AI·文献速递·05-29】

小罗碎碎念 2024-05-29&#xff5c;文献速递 今天分享的文章&#xff0c;主题是AI乳腺癌。 第三篇文章&#xff0c;个人觉得是今天最有借鉴价值的——临床故事接地气&#xff0c;工科算法赶潮流。这篇文章主要做的事情是利用多模态多组学&#xff0c;去区分乳腺腺病和乳腺癌&a…

利用QtScrcpy与Power Automate 实现微信群批量自动清理

Power Automate 一、Power Automate window系统自带软件 在开始使用Power Automate之前&#xff0c;需要熟悉它的基本概念和功能。Power Automate的核心概念包括触发器、操作和连接器。触发器是指触发自动化流程的事件&#xff0c;操作是指在自动化流程中执行的操作&#xff0…

利润而不是损失:谁信任你的游戏本地化

中国游戏市场巨大且前景广阔。这尤其适用于移动游戏&#xff1a;Statista预测&#xff0c;2024年。它的收入将达到346.6亿美元。然而&#xff0c;这种巨大的财务潜力也有其反面&#xff1a;游戏进入市场的次数越多&#xff0c;它们就越难以相互争夺玩家的注意力。此外&#xff…

服务器端请求伪造--SSRF

SSRF 简介 ##SSRF定义 SSRF(Server-Side Request Forgery:服务器端请求伪造)是一种由 攻击者构造形成&#xff0c;由服务端发起请求 的一个安全漏洞。一般情况下&#xff0c;SSRF攻击的目标是从 外网无法访问的内部系统&#xff08;正是因为它是由服务端发起的&#xff0c;所…

RAID配置实战

概念 raid磁盘阵列&#xff1a;可以用不同的硬盘分区&#xff0c;组成一个逻辑上的硬盘。具有高可用 raid级别&#xff1a; raid0 &#xff1a;条带化存储&#xff1a;数据分散在多个物理硬盘上的存储方式。利用多个磁盘并行读取和写入。存储性能和读写性能是最好的。没有冗…

国产可视化爬虫助力AI大模型训练:精准爬取汉语词典

大语言模型&#xff0c;可以生成流畅对话的会话聊天机器人、通畅起草文章的内容生成器。在炫酷技术的背后&#xff0c;数据、算力、算法&#xff0c;被视作生成式AI的三个核心要素。由此可见&#xff0c;高质量的训练数据对于AI算法的准确性至关重要。 如何获得高质量的训练数…

工控一体机7寸显示器电容触摸屏(YR07JK)产品规格说明书

如果您对工控一体机有任何疑问或需求&#xff0c;或者对如何集成工控一体机到您的业务感兴趣&#xff0c;可移步控芯捷科技。 一、硬件功能介绍 1.1 YR07JK介绍 YR07JK工控机是我公司推出的一款新型 Cortex-A17 架构&#xff0c;主频达1.8GHz、具有高性能低能耗的工业控制板卡…

CSS浮动详细教学(CSS从入门到精通学习第四天)

css第04天 一、其他样式 1、圆角边框 在 CSS3 中&#xff0c;新增了圆角边框样式&#xff0c;这样我们的盒子就可以变圆角了。 border-radius 属性用于设置元素的外边框圆角。 语法&#xff1a; border-radius:length; 参数值可以为数值或百分比的形式如果是正方形&…

消费者组到底是什么?no.15

Kafka的消费者组。 消费者组&#xff0c;即Consumer Group&#xff0c;应该算是Kafka比较有亮点的设计了。那么何谓Consumer Group呢&#xff1f;用一句话概括就是&#xff1a;Consumer Group是Kafka提供的可扩展且具有容错性的消费者机制。既然是一个组&#xff0c;那么组内必…

python-使用API

python-使用API 使用github的api-即url地址请求数据 https://api.github.com/search/repositories?qlanguage:python&sortstars #这个调用返回GitHub当前托管了多少个Python项目&#xff0c;还有有关最受欢迎的Python仓库的信息。在浏览器中输入上面地址可以看到该接口&…

HCIA--DHCP: 动态主机配置协议 (复习)

DHCP: 动态主机配置协议 -- 同一分发管理ip地址 基于UDP 67/68端口工作 网络中存在DHCP的服务器为需要自动生成ip地址的设备分配ip地址&#xff1b;--C/S模型 成为DHCP服务器的条件&#xff1a; 该设备存在接口或网卡连接到所要分发ip地址的广播域内该接口或网卡必须已经配置…

从零开始利用MATLAB进行FPGA设计(六)用ADC采集信号教程1

黑金的教程做的实在太拉闸了&#xff0c;于是自己摸索信号采集模块的使用方法。 ADC模块&#xff1a;AN9238 FPGA开发板&#xff1a;AX7020&#xff1b;Xilinx 公司的 Zynq7000 系列的芯片XC7Z020-2CLG400I&#xff0c;400引脚 FBGA 封装。 往期回顾&#xff1a; 从零开始利…