echarts柱状图实现左右横向对比

news2024/9/21 20:46:30

实现效果如上图

 其实是两组数据,其中一组数据改为负数,然后 在展示的时候,在将负数取反

第一处修改坐标轴

   xAxis: [
      {
        type: 'value',
        axisLabel: {
          formatter: function (value) {
            if (value < 0) {
              return -value;
            }else{
              return value;
            }
          }


        }
      }
    ],

第二处修改数据,转负为正

 {
        name: '左',
        type: 'bar',
        color: '#21B8FF',
        stack: '总量',
        label: {
          show: true,
          position: 'left',
          formatter: function (value) {
            if (value.data < 0) {
              return -value.data;
            }
          },


        },
        emphasis: {
          focus: 'series'
        },
        data: [-12, -12, -10, -13, -19, -23, -21, -34, -22, -12]
      }

这里数据如果初始为正,先便利一遍加负号

我的全部代码

<template>
  <div id="echarts11"></div>
</template>

<script setup>
import * as echarts from "echarts";
const emit = defineEmits();

const props = defineProps({
  echartList: {
    default: [],
  },
  dolDate: {
    defalut: false
  }
});
const initChart = () => {
  let xdata = [];
  let ydata1 = [];
  let ydata2 = [];

  let xdataid = [];
  props.echartList.forEach((item) => {
    xdata.push(item.cityName);
    // xdataid.push(item.cityId);
    ydata1.push(item.parkArea);
    ydata2 = [-15, -25, -35, -45, -55]
    // ydata2.push(item.water);
  });
  const machart = echarts.init(document.getElementById("echarts11"));

  var option = {
    tooltip: {
      trigger: 'axis',
      axisPointer: {            // 坐标轴指示器,坐标轴触发有效
        type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
      }
    },
    legend: {
      data: ['左', '右']
    },
    grid: {
      left: '3%',
      right: '4%',
      bottom: '3%',
      containLabel: true
    },
    xAxis: [
      {
        type: 'value',
        axisLabel: {
          formatter: function (value) {
            if (value < 0) {
              return -value;
            }else{
              return value;
            }
          }


        }
      }
    ],
    yAxis: [
      {
        type: 'category',
        axisTick: {
          show: false
        },
        data:xdata
      }
    ],
   
    series: [
      {
        name: '右',
        type: 'bar',
        color: '#74D9A9',
        stack: '总量',
        label: {
          show: true,
          position: 'right'
        },
        emphasis: {
          focus: 'series'
        },
        data: [2, 3, 9, 7, 139, 66, 42, 16, 9, 10]
      },
      {
        name: '左',
        type: 'bar',
        color: '#21B8FF',
        stack: '总量',
        label: {
          show: true,
          position: 'left',
          formatter: function (value) {
            if (value.data < 0) {
              return -value.data;
            }
          },


        },
        emphasis: {
          focus: 'series'
        },
        data: [-12, -12, -10, -13, -19, -23, -21, -34, -22, -12]
      }
    ]
  };

  machart.setOption(option);
  setTimeout(() => {
    window.addEventListener("resize", resizeFn);
  }, 100);
  const resizeFn = () => {
    return machart.resize();
  };
  machart.on("click", (params) => {
    if (params.componentType === "series") {
      const dataIndex = params.dataIndex;
      const yValue = xdata[dataIndex]; // 获取对应柱子的y值
      // const cidtyid = xdataid[dataIndex]; // 获取对应柱子的y值
      emit("changedi", yValue);

      // 在这里你可以对获取到的y值进行其他操作,比如弹窗显示等
    }
  });
};
setTimeout(() => {
  initChart();
}, 800);
defineExpose({
  initChart,
});
onBeforeUnmount(() => {
  // 离开页面必须进行移除,否则会造成内存泄漏,导致卡顿
  window.removeEventListener("resize", initChart);
});
watch(
  () => props.echartList,
  (newVal, oldVal) => {
    if (newVal !== oldVal) {
      initChart();
    }
  }
);
</script>

<style scoped>
#echarts11 {
  width: 100%;
  height: 90%;
  /* height:    calc(30vh- 10px); */
}
</style>

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

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

相关文章

书客大路灯Sun自掀起护眼新浪潮以来,纷纷直呼“真香现场”

随着科技时代与人们生活水平需求的日益增长&#xff0c;加上网课学习和居家办公的普及&#xff0c;各大灯具厂商都开始搭建起自家的生态&#xff0c;尤其是大路灯这个以外不被重视的品类&#xff0c;也开始找到了自身的定位与价值。 尤其在2024年上半年发布的——SUKER书客护眼…

截取字符串的3种方法

一、截取字符串的实现 在C语言中&#xff0c;没有直接截取字符串的库函数&#xff0c;但是咱们可以借助其他函数实现这个功能。 1&#xff0e;最简单的方法 如果只是直接输出一个字符串的子串&#xff0c;只需要一个简单的printf函数即可。 #include <stdio.h> int m…

MySQL之查询 拿下 * 。*

DQL数据查询语言 对上述的的查询操作进行代码演示&#xff08;续上一篇学生表代码进行处理&#xff09; 下面是上一篇的代码分享 下面进行简单的查询操作 字符串如果强行进行算数运算默认只为0 查询时常用的单行函数列举 未完待续

【机器学习】必会算法之:AdaBoost

AdaBoost 1、引言2、AdaBoost2.1 定义2.2 优缺点2.2.1 优点2.2.2 缺点 2.3 实现方式2.4 算法公式2.5 代码示例 3、总结 1、引言 小屌丝&#xff1a;鱼哥&#xff0c; 这五一要去哪里浪啊&#xff1f; 小鱼&#xff1a;哪也不去&#xff1f; 小屌丝&#xff1a;&#xff1f;&am…

[激光原理与应用-92]:振镜的光路图原理

目录 一、振镜的光路 二、振镜的工作原理 2.1 概述 2.2 焊接头 2.3 准直聚焦头-直吹头 2.4 准直聚焦头分类——按应用分 2.4.1 准直聚焦头分类——功能分类 2.4.2 准直聚焦头镜片 2.4.3 振镜焊接头 2.4.4 振镜分类&#xff1a; 2.4.5 动态聚焦系统演示&#xff08;素…

代码随想录第51天 | 309.最佳买卖股票时机含冷冻期

309.最佳买卖股票时机含冷冻期 309. 买卖股票的最佳时机含冷冻期 - 力扣&#xff08;LeetCode&#xff09; 代码随想录 (programmercarl.com) 动态规划来决定最佳时机&#xff0c;这次有冷冻期&#xff01;| LeetCode&#xff1a;309.买卖股票的最佳时机含冷冻期_哔哩哔哩_bi…

开发环境待

一 web开发环境搭建 1 web开发环境概述 所谓web开发,指的就是从网页中向后端程序发送请求.与后端程序进行交互. 流程图: 1,Web服务器是指驻留于因特网上某种类型计算机的程序. 2, 可以向浏览器等Web客户端提供文档&#xff0c;也可以放置网站文件&#xff0c;让全世界 浏览…

自定义类型②③——联合体和枚举

自定义类型②③——联合体和枚举 1.联合体1.1 联合体类型的声明1.2 联合体的特点1.3 相同成员结构体和联合体的对比1.4 联合体大小的计算1.5 联合体的应用①1.5 联合体的应用② 2. 枚举2.1 枚举类型的声明2.2 枚举类型的特点2.3 枚举的优点 1.联合体 1.1 联合体类型的声明 关…

Whisper、Voice Engine推出后,训练语音大模型的高质量数据去哪里找?

近期&#xff0c;OpenAI 在语音领域又带给我们惊喜&#xff0c;通过文本输入以及一段 15 秒的音频示例&#xff0c;可以生成既自然又与原声极为接近的语音。值得注意的是&#xff0c;即使是小模型&#xff0c;只需一个 15 秒的样本&#xff0c;也能创造出富有情感且逼真的声音。…

【字符串】Leetcode 二进制求和

题目讲解 67. 二进制求和 算法讲解 为了方便计算&#xff0c;我们将两个字符串的长度弄成一样的&#xff0c;在短的字符串前面添加字符0&#xff1b;我们从后往前计算&#xff0c;当遇到当前计算出来的字符是> 2’的&#xff0c;那么就需要往前面进位和求余 注意&#xf…

腾讯崛起!2024年最赚钱的电商平台,竟然来自视频号

大家好&#xff0c;我是电商月月 说到卖货平台&#xff0c;这两年“抖音”绝对是所有人心里最赚钱的电商平台 抖音小店的商家利用抖店后台的“精选联盟”引流&#xff0c;不用自己直播&#xff0c;也能靠直播卖货赚的盆满钵满 于是好多平台都效仿抖店的直播卖货形式来获取更…

《自动机理论、语言和计算导论》阅读笔记:p428-p525

《自动机理论、语言和计算导论》学习第 14 天&#xff0c;p428-p525总结&#xff0c;总计 98 页。 一、技术总结 1.Kruskal’s algorithm(克鲁斯克尔算法) 2.NP-Complete Problems p434, We say L is NP-complete if the following statements are true about L: (1)L is …

电机控制器电路板布局布线参考指导(七)电流检测模块布局布线

电机控制器电路板布局布线参考指导&#xff08;七&#xff09;电流检测模块布局布线 1.高侧电流检测2.低侧电流监测3.两相和三相电流检测4.关键元器件选型要求5.布局6.布线7.工具设置8.输入和输出滤波9.注意事项 很多电机驱动器产品系列包括内置了电流感测功能的器件&#xff0…

ArthasGC日志GCeasy详解

Arthas详解 Arthas是阿里巴巴在2018年9月开源的Java诊断工具,支持JDK6,采用命令行交互模式,可以方便定位和诊断线上程序运行问题.Arthas官方文档十分详细.详见:官方文档 Arthas使用场景 Arthas使用 # github下载arthas wget https://alibaba.github.io/arthas/arthas-boot.j…

OpenHarmony实战开发-如何使用Web组件加载页面

页面加载是Web组件的基本功能。根据页面加载数据来源可以分为三种常用场景&#xff0c;包括加载网络页面、加载本地页面、加载HTML格式的富文本数据。 页面加载过程中&#xff0c;若涉及网络资源获取&#xff0c;需要配置ohos.permission.INTERNET网络访问权限。 加载网络页面…

计算机组成结构—高速缓冲存储器(Cache)

目录 一、Cache的基本工作原理 1.Cache工作原理 2.命中率 3.Cache的基本结构 4.Cache的改进 二、Cache和主存之间的映射方式 1.直接映射 2.全相联映射 3.组相联映射 三、Cache中主存块的替换算法 四、Cache的写策略 概为了解决 CPU 和主存之间速度不匹配的问题&#x…

(读书笔记-大模型) LLM Powered Autonomous Agents

目录 智能体系统的概念 规划组件 记忆组件 工具组件 案例研究 智能体系统的概念 在大语言模型&#xff08;LLM&#xff09;赋能的自主智能体系统中&#xff0c;LLM 充当了智能体的大脑&#xff0c;其三个关键组件分别如下&#xff1a; 首先是规划&#xff0c;它又分为以下…

成语:势如破竹、迎刃而解;明以前唯一同时入选文庙、武庙的牛人

千古流芳、身后能够进入文庙或武庙&#xff0c;是古人最高的荣誉&#xff0c;也是读书人和武将终极的追求&#xff0c;所谓的青史留名&#xff0c;享受万代祭祀、千秋敬仰&#xff0c;甚至都可以称之为圣人&#xff0c;但历史上&#xff0c;却有两人文武兼备、同时入选了文庙与…

RESTFul风格设计和实战

四、RESTFul风格设计和实战 4.1 RESTFul风格概述 4.1.1 RESTFul风格简介 RESTful&#xff08;Representational State Transfer&#xff09;是一种软件架构风格&#xff0c;用于设计网络应用程序和服务之间的通信。它是一种基于标准 HTTP 方法的简单和轻量级的通信协议&#x…

多目标转化依赖DBMTL与AIT区别

DBMTL&#xff1a;通过前序目标输出作为后序目标输入刻画概率转移关系&#xff0c;概率关系的刻画是通过MLP来刻画的&#xff1b;目标之间如果存在内在联系&#xff0c;稀疏目标能利用非稀疏目标中的信息&#xff0c;得到特殊收益&#xff1b; DBMTL与ESMM区别&#xff1a;直接…