Echart 数据更新了,X轴或者Y轴显示不变化的问题

news2024/11/23 4:01:44

应用场景:点击不同的图例,显示不同的X轴或者Y轴的图表

问题:数据打印更新了,Y轴仍然不变。

 

点第一个legend块,Y轴应该['名称1', '名称2', '名称3', '名称4', '名称5', '名称6', '名称7', '名称8'],

点第二个legend块,Y轴应该 ['名称二1', '名称二2', '名称二3', '名称二4', '名称二5', '名称二6', '名称二7', '名称二8'],

下面是我的代码,解决办法看第4步。

页面和样式部分

 <template>
<div class="home" style="margin-left: 20px;margin-top: 60px;">
      <div id="container" ref="echart1"></div>
    </div>
</template>



<style lang="less" scoped>

  #container {
    width: 88%;
    height: 680px;
  }
</style>

1.数据 我这里写了测试数据

data() {
      return {
        barData1: [250, 500, 750, 850, 1000, 1200, 1800, 2500, 3500], //坐标数据
        barData2: [20, 55, 80, 90, 105, 125, 185, 245], //坐标数据
        x_Data: ['名称1', '名称2', '名称3', '名称4', '名称5', '名称6', '名称7', '名称8'],
        y_Data: ['名称二1', '名称二2', '名称二3', '名称二4', '名称二5', '名称二6', '名称二7', '名称二8'],
    option1: {
          grid: {
            top: "15%",
            left: "17%",
            right: "2%",
            bottom: "8%",
            containLabel: false
          },
          yAxis: {},
          xAxis: {
            type: 'value',
          },
          legend: {
            selectedMode: 'single', //只能选一个
            data: ['销量: ㎡', '实收平均: 元/㎡'],
            selected: {
              '销量: ㎡': true,
              '实收平均: 元/㎡': false
            }
          },
          series: [{
              name: '销量: ㎡',
              type: 'bar',
              data: [],
              barWidth: 25,
              label: {
                formatter: "{c}",
                show: true, //开启显示
                position: 'right',
                textStyle: { //数值样式
                  color: '#5087EC',
                  fontSize: 12
                }
              },
              itemStyle: { //柱状颜色和圆角
                color: '#5087EC',
              },
            },
            {
              name: '实收平均: 元/㎡',
              type: 'bar',
              data: [],
              label: {
                formatter: "{c}",
                show: true, //开启显示
                position: 'right',
                textStyle: { //数值样式
                  color: '#68BBC4',
                  fontSize: 12
                }
              },
              barWidth: 25,
              itemStyle: { //柱状颜色和圆角
                color: '#68BBC4',
              },

            }
          ]
        }

2.初始化数据

    getxydate() {
        // 初始化赋值。我这里是直接用data中的数据,大家可以在这里获取接口中数据
        this.option1.series[0].data = this.barData1 //初始化时赋值 x轴,第一个块数据
        this.option1.series[1].data = this.barData2 //初始化时赋值 x轴,第二个块数据
        this.option1.yAxis = {
          type: 'category',
          data: this.x_Data,

        } //初始化赋值y轴数据
        this.option1.legend.selected = {
          '销量: ㎡': true,
          '实收平均: 元/㎡': false
        } //默认回到第一个legend块
        this.mychart2() //执行echart方法
      },

3.获取数据后加载获取echart的方法

      mychart2() {
        var echart = this.$echarts.init(document.getElementById("container"));
        echart.setOption({}, true)
        // var sel_name = this.option1.series[0].name
        echart.off('legendselectchanged') //解决重复触发
        echart.on('legendselectchanged', (e) => {
//点击legend切换时执行的方法
          if (e.name == '销量: ㎡') {
            this.option1.yAxis = {
              type: 'category',
              data: this.x_Data,
              boundaryGap: true
            }
            this.option1.legend.selected = {
              '销量: ㎡': true,
              '实收平均: 元/㎡': false
            }
            console.log(this.x_Data, '销量: ㎡')
          } else {
            this.option1.yAxis = {
              type: 'category',
              data: this.y_Data,
              boundaryGap: true
            }
            this.option1.legend.selected = {
              '销量: ㎡': false,
              '实收平均: 元/㎡': true
            }
            console.log(this.y_Data, '否则')
          }
          sel_name = e.name
        })
        console.log(this.option1.yAxis.data, ' this.option1.yAxis')
        echart.setOption(this.option1, true);
      },

到此,上面执行后是有问题的,切换legend后Y轴是不变的

4.解决办法,用监听重新调用echart的方法来更新数据,ok,成功

 watch: {
      option1: {
        handler() {
          console.log('监听')
          this.mychart2();
        },
        deep: true
      }
    },

 1.中间我尝试过

myChart.setOption(option2,true);//设置为true时不会合并数据,而是重新刷新数据

2.在数据发生改变时,先清空原来的数据

     this.chart.clear();
// or
     this.chart.setOption( {}, true)

3.或者直接修改整个xAxis的值,而不是xAxis.data

           option.yAxis = {
           type: 'category',
           data: this.HistogramList.series[1].titles
            }

上面三种都试了不行、

最终是通过监听重新调用echart的方法来更新数据!!!

echarts官网地址,可以选择自己需求的样式进行修改  Examples - Apache ECharts

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

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

相关文章

C#编码规范

一、 命名惯例和规范 注&#xff1a; Pascal&#xff1a;大小写形式&#xff0d;所有单词第一个字母大写&#xff0c;其他字母小写。 驼峰式&#xff1a;大小写形式&#xff0d;除了第一个单词&#xff0c;所有单词第一个字母大写&#xff0c;其他字母小写。 1&#xff1a;类…

Java 动态规划 Leetcode 213. 打家劫舍 II

代码展示&#xff1a; class Solution {public int rob(int[] nums) {int nnums.length;return Math.max(nums[0]childRob(nums,2,n-2),childRob(nums,1,n-1));}public int childRob(int[]nums,int left,int right){if(left>right){return 0;}int nnums.length;//创建数组i…

Unity基础 物理系统 铰链关节 Hinge Joint

铰链关节是一种模拟物理系统中的连接方式&#xff0c;它允许两个物体围绕一个共同的轴点旋转。这种连接方式可以用于模拟门、摆钟、机器人手臂等各种物理运动。 Connected Body&#xff08;连接体&#xff09;&#xff1a;这是铰链关节连接的另一个刚体。通过设置这个属性&…

谷歌自研芯片秘辛首次曝光;黑客要价 10 万美元出售雷蛇源代码等数据;百川智能发布 Baichuan-13B大模型(提供源码)

2023年7月12日科技新闻要点&#xff01;10秒概览&#xff01; 1.科大讯飞&#xff1a;下半年 all in 星火大模型 2.百川智能发布 Baichuan-13B&#xff08;源代码和安装及训练教程作为福利在文章最后告诉获取方式&#xff09; 3.谷歌自研芯片秘辛首次曝光 4.黑客要价 10 万…

第二十五章:InnoDB的数据存储结构

第二十五章&#xff1a;InnoDB的数据存储结构 25.1&#xff1a;数据库的存储结构&#xff1a;页 ​ 索引结构给我们提供了高效的索引方式&#xff0c;不过索引信息以及数据记录都是保存在文件上的&#xff0c;确切说是存储在页结构中。另一方面&#xff0c;索引是在存储引擎中…

N天爆肝数据库——MySQL(3)

本篇文章&#xff0c;主要对DCL、 函数、 约束和多表查询进行知识总结和学习。 期待和大家一起学习进步。DCL DCL-介绍 数据控制语言&#xff0c;用来管理数据库用户、控制数据库的访问权限。DCL-管理用户 查询用户 USE mysql; SELECT * FROM user; 创建用户 CREATE US…

Overleaf论文投稿

1.Overleaf 具体投稿 一步一步教&#xff01;&#xff01;&#xff01;以Springer Nature为例 2.如何在overleaf上寻找会议或期刊的模板 LaTex期刊模板下载与使用

Mocha Pro 2023 v10.0.2(win/mac)无套路安装教程

Mocha Pro 2023 Mocha Pro是一款世界知名的软件和插件&#xff0c;用于平面运动跟踪、旋转描记、对象移除、图像稳定和PowerMesh有机扭曲跟踪。 Mocha的工具对于视觉效果和后期制作至关重要&#xff0c;在最近每一部获得奥斯卡最佳视觉效果提名的电影中都发挥了重要作用。了解…

天翎MyApps低代码平台案例分享—阿米检测设备管理系统

项目背景&#xff1a;阿米检测技术有限公司&#xff08;以下简称为“阿米检测”&#xff09;隶属于中国航天科技集团&#xff0c;是北京航天计量测试技术研究所下属全资公司&#xff0c;2018年由国家财政部正式发文批准成立。司转化航天高端技术&#xff0c;开展测量方法应用、…

【dij变形】牛客练习赛93 C

C-点权_牛客练习赛93 (nowcoder.com) 题意&#xff1a; 思路&#xff1a; 重要的是在松弛的时候要满足什么条件才开始松弛 这里是用两个点来松弛一个点 Code&#xff1a; #include <bits/stdc.h>//#define int long longusing namespace std;const int mxn1e510; co…

Android的内存泄漏分析

目录 1、内存详情 1.1、内存溢出 1.2 、内存泄漏 1.3、内存抖动 2、垃圾回收机制 2.1、垃圾回收算法&#xff08;标记--清除&#xff09; 2.2、垃圾回收算法&#xff08;标记--整理&#xff09; 2.3、复制算法 2.4、分代回收算法 3.GCRoot原理 3.1、可达性分析法…

VSCODE 设置同步network Error 问题

前言 这个问题等解决方法如下&#xff1a; 获取到github以及vscode-auth.github.com的ip&#xff0c;添加到host&#xff0c;随后使用命令行刷新host&#xff0c;重新认证即可 第一步&#xff0c;查看log文件&#xff0c; 打开 vscode&#xff0c;使用快捷指令ctrl(command)…

对象池介绍

对象池介绍 对象池是一种常见的优化技术&#xff0c;用于减少游戏运行时的内存分配和垃圾回收。对象池维护了一组已经创建的对象实例&#xff0c;这些对象可以被多次重复使用&#xff0c;而不需要每次都重新创建和销毁。对象池的主要优点是可以减少内存分配和垃圾回收的次数&a…

第一百零四天学习记录:C++核心:类和对象Ⅶ(五星重要)继承下

继承同名成员处理方式 1、访问子类同名成员&#xff0c;直接访问即可 2、访问父类同名成员&#xff0c;需要加作用域 #include<iostream> using namespace std; class Base { public:Base(){m_A 100;}int m_A;void func(){cout << "Base - func()调用"…

途乐证券-逆市拉升!这一板块超10股涨停

7月12日&#xff0c;A股商场全体走低&#xff0c;个股跌多涨少&#xff0c;厄尔尼诺的冲击波也“搅动”了A股商场&#xff0c;种业、虚拟电厂等概念股纷繁走强。轿车产业链个股继续活泼&#xff0c;超10股涨停。 2023年中期成绩预告仍如火如荼发表中&#xff0c;成绩“预喜”股…

SpringCloud入门实战(十三)Nacos服务注册与发现+配置管理详解

&#x1f4dd; 学技术、更要掌握学习的方法&#xff0c;一起学习&#xff0c;让进步发生 &#x1f469;&#x1f3fb; 作者&#xff1a;一只IT攻城狮 &#xff0c;关注我&#xff0c;不迷路 。 &#x1f490;学习建议&#xff1a;1、养成习惯&#xff0c;学习java的任何一个技术…

电脑网络最基本的常识简介(合集)

电脑网络最基本的常识简介 什么是HTML? HTML(Hyper Text Mark-up Language )即超文本标记语言&#xff0c;是 WWW 的描述语言&#xff0c;由 Tim Berners-lee提出。设计 HTML 语言的目的是为了能把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起&a…

蚁群算法—ACA

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; 目录 一、蚁群算法简介&#x1f353;1.ACA基本思想2.ACA基本原理3.ACA基本步骤 二、算法求解TSP问题&#x1f34e;1.导入数据2.计算城市间相互距离3.初始化参数4.迭代寻找最佳路径5.结果显示End 一、蚁群算法简介&a…

软件 - 配置安装 Photoshop 的 RID 独立运行版本

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/131673004 Adobe Photoshop 是一款专业的图像处理软件,广泛应用于平面设计、摄影、插画、视频制作等领域,可以对各种格式的图片进行编辑、修饰、合成、优化等操作,创…