echarts学习: 在图表中添加多条y轴会怎么样?

news2024/12/24 22:01:02

前言

在撰写如何绘制双y轴图表文章时,我突然萌生出了一个想法,如果给图表添加两个以上的y轴会怎么样呢? 带着这个问题我开始了自己的探索之旅。

我找到了一篇优秀的文章作为参考,虽然它需要付费,但是不要紧,文中免费浏览的部分已经足够了。在这篇文章中作者给出了如下的效果图,下面我将尝试复现它。

1.添加6条y轴

第一步就是给我们的表格添加6条y轴。方法很简单,只要将yAxis设置为一个数组,在其中添加6个y轴对象即可。

{
  yAxis: [
    {
      type: 'value',
      name: '水位(m)',
      axisLine: {
        show: true,
        symbol: ['none', 'arrow'],
      },
    },
    {
      type: 'value',
      name: '流量(m³/s)',
      axisLine: {
        show: true,
        symbol: ['none', 'arrow'],
      },
    },
    {
      type: 'value',
      name: '指标参数三',
      axisLine: {
        show: true,
        symbol: ['none', 'arrow'],
      },
    },
    {
      type: 'value',
      name: '指标参数四',
      axisLine: {
        show: true,
        symbol: ['none', 'arrow'],
      },
    },
    {
      type: 'value',
      name: '指标参数五',
      axisLine: {
        show: true,
        symbol: ['none', 'arrow'],
      },
    },
    {
      type: 'value',
      name: '指标参数六',
      axisLine: {
        show: true,
        symbol: ['none', 'arrow'],
      },
    },
  ],
}

2.解决y轴重叠问题

现在添加了6条y轴的图是这样的:

从上图中可以看出第一条y轴在左侧,剩下的5条y轴都在右侧,它们重叠在一起。

我们可以通过yAxis.positionyAxis.offset这两个属性,将我们的6条y轴设置为与效果图中一样左右各3条的布局。

{
  yAxis:[
    {
      type: 'value',
      name: '水位(m)',
      axisLine: {
        show: true,
      },
    },
    {
      type: 'value',
      name: '流量(m³/s)',
      axisLine: {
        show: true,
      },
    },
    {
      type: 'value',
      name: '指标参数三',
      position:'right',
      offset: 20,
      axisLine: {
        show: true,
      },
    },
    {
      type: 'value',
      name: '指标参数四',
      position:'right',
      offset: 40,
      axisLine: {
        show: true,
      },
    },
    {
      type: 'value',
      name: '指标参数五',
      position:'left',
      offset: 20,
      axisLine: {
        show: true,
      },
    },
    {
      type: 'value',
      name: '指标参数六',
      position:'left',
      offset: 40,
      axisLine: {
        show: true,
      },
    },
  ]
}

看了现在我画出的这张效果图,可能有朋友就要问了,为什么你不把offset设的大一点?现在虽然轴线分开了,但它们的name还是重叠在一起。

我也很无奈啊,也很想将offset设大,但这样轴线就超出画布范围了。可以测试一下,现在我将右侧第三根y轴的offset增大:

{
  type: 'value',
  name: '指标参数四',
  position:'right',
  offset: 60,
  axisLine: {
    show: true,
  },
}

从结果就可以看到这条轴线直接消失了。

3.解决画布空间不足的问题

为了直观的看出画布的范围,我给画布添加一个背景色。

我们解决空间不足的方法是,利用grid.leftgrid.right属性压缩图表在画布中的尺寸。

{
  grid: {
    left: '15%',
    right:'15%'
  },
}

此时我们就会惊喜的发现,之前消失的右侧第三条y轴又重新出现了。

最后基于上面的思路,我们在对y轴进行调整(我还调整了容器的尺寸 O(∩_∩)O哈哈~):

{
    grid: {
      left: '20%',
      right:'20%'
    },
    yAxis: [
    {
      type: 'value',
      name: '水位(m)',
      axisLine: {
        show: true,
      },
    },
    {
      type: 'value',
      name: '流量(m³/s)',
      axisLine: {
        show: true,
      },
    },
    {
      type: 'value',
      name: '指标参数三',
      position: 'right',
      offset: 60,
      axisLine: {
        show: true,
      },
    },
    {
      type: 'value',
      name: '指标参数四',
      position: 'right',
      offset: 120,
      axisLine: {
        show: true,
      },
    },
    {
      type: 'value',
      name: '指标参数五',
      position: 'left',
      offset: 60,
      axisLine: {
        show: true,
      },
    },
    {
      type: 'value',
      name: '指标参数六',
      position: 'left',
      offset: 120,
      axisLine: {
        show: true,
      },
    },
  ],
}

目前我已经完成了对6条y轴的布局工作,但可以看距离效果图仍有差距,我会持续优化的,敬请期待。。。

参考资料

  1. Echarts实现多个x轴或y轴曲线图_echarts双x轴(非等分情况)-CSDN博客
  2. yAxis.offset - Apache ECharts
  3. grid.left - Apache ECharts

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

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

相关文章

达摩院重大“遗产”!fluxonium量子比特初始化300纳秒且保真度超过99%

通用量子计算机开发的主要挑战之一是制备量子比特。十多年来,研究人员在构建量子计算机的过程中主要使用了transmon量子比特,这也是迄今为止商业上最成功的超导量子比特。 但与业界多数选择transmon量子比特不同,(前)…

关于浔川python社在全网博主原力月度排名泸州地区排名第三名的调查——浔川总社部

6月6日,浔川python社在全网博主原力月度排名泸州地区排名第三名。 引起了广大python爱好者等的不满,为什么浔川python社这么一个大的python社排名第三? 2024-06-04 21:59:52 浔川python社在全网博主原力月度排名泸州地区排名第一名。 2024-…

基于Vue3的Uniapp实训项目|一家鲜花店

基于Vue的Uniapp实训指导项目 项目预览: 在这里插入图片描述 pages.json {"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages{"path": "pages/index/index",&…

static的用法

static一般用于修饰局部变量,全局变量,函数 1 static修饰局部变量 是因为改为static int a1;后,出了作用域,不会销毁a的值,想要理解其本质,首先先看一下这个图: static修饰局部变量时&#xf…

每天一道大厂SQL题【Day32】按消息量给广东省qq打标记

文章目录 每天一道大厂SQL题【Day32】按消息量给广东省qq打标记每日语录第32题 需求三:按消息量给广东省qq打标记思路分析附表 答案获取加技术群讨论文末SQL小技巧 后记 每天一道大厂SQL题【Day32】按消息量给广东省qq打标记 大家好,我是Maynor。相信大…

RabbitMQ系列-rabbitmq无法重新加入集群,启动失败的问题

当前存在3个节点:rabbitmq5672、rabbitmq5673、rabbitmq5674 当rabbitmq5673节点掉线之后,重启失败 重启的时候5672节点报错如下: 解决方案 在集群中取消失败节点 rabbitmqctl forget_cluster_node rabbitrabbitmq5673删除失败节点5673的…

工欲善其事必先利其器——IntelliJ IDEA神器使用技巧

1.IntelliJ IDEA神器使用技巧【时长2小时20分】 程序员每日都会花费数小时使用ide编写和调试代码,其中很多操作都是机械重复且频率非常高,本着"工欲善其事必先利其器"的精神,闷头写代码之外花点时间研究一下自己用的ide&#xff0…

zookeeper启动(一)

1.zookeeper启动入口 在zkServer.sh的启动命令中,我们可以找到zookeeper启动的关键类org.apache.zookeeper.server.quorum.QuorumPeerMain QuorumPeerMain#main 我们可以直接看org.apache.zookeeper.server.quorum.QuorumPeerMain中的main方法,从下面的main方法中,我们可以…

JavaSE基础语法合集

随着不断学习,我们已经走完了JavaSE基础语法的所有内容,博主的单独语法篇共十二篇,感兴趣的也可以去看看,内容基本一致,目录是重新排布的,数组和方法都在初识Java章节。 适合:老手复习和新手从零…

Ubuntu系统升级k8s节点的node节点遇到的问题

从1.23版本升级到1.28版本 node节点的是Ubuntu系统20.04的版本 Q1 node节点版本1.23升级1.28失败 解决办法: # 改为阿里云镜像 vim /etc/apt/sources.list.d/kubernetes.list# 新增 deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main# 执…

pdf处理命令合集

安装weasyprint用于生成pdf 单个文件合成多个pdf linux - Merge / convert multiple PDF files into one PDF - Stack Overflow

深入解析Java中volatile关键字

前言 我们都听说过volatile关键字,也许大家都知道它在Java多线程编程编程中可以减少很多的线程安全问题,但是会用或者用好volatile关键字的开发者可能少之又少,包括我自己。通常在遇到同步问题时,首先想到的一定是加锁&#xff0…

【AI基础】第二步:安装AI运行环境

开局一张图: ​ 接下来按照从下往上的顺序来安装部署。 规则1 注意每个层级的安装版本,上层的版本由下层版本决定 比如CUDA的版本,需要看显卡安装了什么版本的驱动,然后CUDA的版本不能高于这个驱动的版本。 这个比较好理解&…

520表白神器

🍁博主简介: 🏅云计算领域优质创作者 🏅2022年CSDN新星计划python赛道第一名 🏅2022年CSDN原力计划优质作者 🏅阿里云ACE认证高级工程师 🏅阿里云开发者社区专…

Ripple:使用Wavelet Approximations来加速FHE的Programmable Bootstraps

1. 引言 University of Delaware和Nillion团队的 Charles Gouert、Mehmet Ugurbil、Dimitris Mouris、Miguel de Vega 和 Nektarios G. Tsoutsos,2024年论文《Ripple: Accelerating Programmable Bootstraps for FHE with Wavelet Approximations》,开源…

如何理解与学习数学分析——第二部分——数学分析中的基本概念——第9章——可积性

第2 部分:数学分析中的基本概念 (Concepts in Analysis) 9. 可积性(Integrability) 本章讨论了可积性(integrability)的概念(它不同于积分过程)。研究了反导数(antiderivative,或称原函数)和函数图像下面积之间的关系,然后通过对面积的近似…

使用Python绘制南丁格尔图(玫瑰图)

使用Python绘制南丁格尔图(玫瑰图) 南丁格尔图效果代码 南丁格尔图 南丁格尔图(Nightingale Rose Chart),也被称为玫瑰图或极区图,是一种特殊的圆形统计图,用于显示多个类别的数据。它是由弗洛…

用蒙特卡罗积分法近似求解定积分的值及举例

一、背景知识 1、连续随机变量的概率密度函数 对于连续型随机变量的概率密度函数(PDF),其在整个定义域上的积分必须等于1。这是概率密度函数的一个基本属性,它确保了随机变量取任何值的概率之和等于1,符合概率论的公…

Leetcode:电话号码的字母组合

题目链接&#xff1a;17. 电话号码的字母组合 - 力扣&#xff08;LeetCode&#xff09; 普通版本&#xff08;回溯&#xff09; class Solution { public:string tmp;//临时存放尾插内容vector<string> res;//将尾插好的字符串成组尾插给resvector<string> board{…

Apache POI(使用Java读写Excel表格数据)

1.Apache POI简介 Apache POI是一个开源的Java库&#xff0c;用于操作Microsoft Office格式的文件。它支持各种Office文档的读写功能&#xff0c;包括Word文档、Excel电子表格、PowerPoint演示文稿、Outlook电子邮件等。Apache POI提供了一组API&#xff0c;使得Java开发者能够…