今天分享一个小问题,内容不多。

双y轴图表中,为了图表的美观,经常会隐藏一侧的y轴刻度线,仅显示一侧的刻度线。那么问题就来了,两个y轴的数据数值大小不同,常常会导致刻度线的刻度分布不均匀,该如何解决呢?

这里分享下我在项目中所作的处理:

首先是要找出当前y轴数据的最大值,与100相除,再对得到的商进行向上取整,最后把结果乘100。
有一点要注意,取整这里必须是向上取整(Math.ceil)。
备注:Math.round是四舍五入取整,Math.floor是向下取整,使用这两个方法可能会导致数据显示不全
并且要注意极端情况:当得到的结果为0,也即是最大值小于100的时候,我们要把最终的结果设置成100。
简单代码如下:

let yData = [100,120,140,110,160,130];
let zData = [70,50,40,80,60,90,100]; function getSplitInterval(data){
let max = Math.ceil(Math.max(...data) / 100) * 100;
if(max===0){max=100}
return max
}
let ymax = getSplitInterval(yData)
let zmax = getSplitInterval(zData)

  

当然,肯定会有同学产生疑问:为什么要与100进行运算?这个实际上是为了后面的刻度分隔提供便利,后面我是把刻度分成了5段,刚好可以被100整除。

也不一定是非要选择100,只要左后刻度均匀即可。

y轴属性设置如下:

yAxis:[
{
...
min: 0,
max: ymax,
splitNumber: 5,
minInterval:1,
interval: ymax / 5,
...
},
{
...
min: 0,
max: zmax,
splitNumber: 5,
minInterval:1,
interval: zmax / 5,
...
}
]

  

echarts:双y轴图表刻度均匀分布问题的更多相关文章

  1. echarts 双Y轴图表

    直接代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  2. echarts双y轴折线图柱状图混合实时更新图

    先看下效果,自己用ps做了张gif图,发现很好玩啊..不喜勿喷 自己下载个echarts.min.js 直接上代码: <!DOCTYPE html><html><head ...

  3. echarts使用笔记四:双Y轴

    1.双Y轴显示数量和占比 app.title = '坐标轴刻度与标签对齐'; option = { title : { //标题 x : 'center', y : 5, text : '数量和占比图 ...

  4. Python教程:matplotlib 绘制双Y轴曲线图

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:数据皮皮侠 双X轴的可以理解为共享y轴 ax1=ax.twiny() ...

  5. Python实现双X轴双Y轴绘图

    诈尸人口回归.这一年忙着灌水忙到头都掉了,最近在女朋友的提醒下终于想起来博客的账号密码,正好今天灌水的时候需要画一个双X轴双Y轴的图,研究了两小时终于用Py实现了.找资料的过程中没有发现有系统的文章, ...

  6. highchart 设置双Y轴坐标 双x轴坐标方法

    我们的图表一旦引入了两种不同单位或者数量级相差很大的数据以后,这时候需要两种坐标对其进行计量. 下面以设置双Y轴为例, y轴坐标的参数设置成: yAxis: [{ title: { text: '坐标 ...

  7. MSChart使用之双Y轴使用

    protected void SearchChart() { Chart1.ChartAreas.Clear(); Chart1.Series.Clear(); ChartArea _ChartAre ...

  8. echarts统计图Y轴(或X轴)文字过长问题解决

    echarts 统计图Y轴文字过长 在使用echarts时,出现数值非常大,Y轴又显示不下的情况就需要压缩Y轴数值刻度. 解决方法: yAxis: { type: 'value', axisLabel ...

  9. 绘制复数图形和双y轴图形

    clearclct=0:0.1:2*pi;x=sin(t);y=cos(t);z=x+i*y;subplot(1,3,1)plot(t,z,'r') %注:这种方式下,不论参数t,z哪个是复数,都将忽 ...

  10. Jqplot使用总结之二(双Y轴)

    最近需要用Jqplot做双Y轴的Chart图,首先我找到了文档上的例子并对数据做了一些调整: 1.例子展示: var s1 = [["2002-01-01", 112000], [ ...

随机推荐

  1. java入门与进阶 P-3.2+P-3.3+P3.4

    数数字 例如:Scanner sc = new Scanner(System.in);int number = sc.nextInt();int count= 0;while(number>0) ...

  2. 部署并运行laravel项目显示:SQLSTATE[HY000] [2002] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

    composer安装完所需依赖之后仍旧打不开页面,排查之后发现是数据库的问题... 也就是说,.env文件的配置写错了,改一下就好啦

  3. 聊一聊js中元素定位的方法

    在做selenium web自动化的时候,有时通过selenium定位不到,或无法操作元素,这个时候就需要通过js来 定位/操作元素,然后通过selenium自带的execute_script()方法 ...

  4. 了解 Transformers 是如何“思考”的

    Transformer 模型是 AI 系统的基础.已经有了数不清的关于 "Transformer 如何工作" 的核心结构图表. 但是这些图表没有提供任何直观的计算该模型的框架表示. ...

  5. 12月5日内容总结——JS基础知识及变量常量、基本数据类型、运算符、流程控制、函数、内置对象

    目录 一.JS简介 简介 ECMAScript的历史 二.JS基础 1.注释语法 2.引入js的多种方式 3.结束符号 三.变量与常量 编写和运行js代码的两种方式 变量声明 四.基本数据类型 1.数 ...

  6. Nginx07 keepalived

    https://hashnode.blog.csdn.net/article/details/124532338 1 简介 Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控L ...

  7. 2022.2.1最新版本的IDEA

          一.下载破解工具.激活码 激活工具下载链接:https://note.youdao.com/s/1ANz2F3o   6G5NXCPJZB-eyJsaWNlbnNlSWQiOiI2RzVO ...

  8. Blazor 拖放上传文件转换格式并推送到浏览器下载

    前言 昨天有个小伙伴发了一个老外java编写的小工具给我,功能是转换西班牙邮局快递Coreeos express的单据格式成Amazon格式,他的需求是改一下程序为匹配转换另一个快递公司MRW格式到A ...

  9. python爬虫学习——元组,字典(2.14日博客补)

    元组 ''' tup1 = () #创建一个空的元组 print(type(tup1)) #tup2 = (50) #不是元组,python把括号当成了表达式的一部分,即数学运算的括号 #tup2 = ...

  10. 教你用手机的NFC功能模拟门禁卡,实现出门不带卡

    此教程教您将门禁卡.考勤卡.会员卡.停车卡.电梯卡等等各种卡片模拟进NFC手机里,从而用手机代替门禁卡 一.软硬件准备 NFC Tool 手机上的IC卡读写编辑软件,搭配蓝牙读卡器或者OTG读卡器,可 ...