当一组按时间分布的数据,最大值与一组极小值之间的比值超过10倍时&极小值数据的个数不少还连续排布,此时再用均等Y轴刻度的统计图表显示数据,将造成极小值数据集合近似显示为一条直线。如图1所示。 图1 原始图表
此时Y轴采用Maxium等比例划分刻度,很明显,在X轴64刻度后的数据值小得可怕,可怕到什么程度呢?可怕到基本可以忽略不计的程度。这基本就是2020年后的某某现状......
显然,我们不能容忍这种情况,解决不了问题,只有解决图表。
于是,设计了一种不均等比例Y轴的图表,强行把极小值集合拉高显示。你没看错,就是拉高。但图表中每个节点仍然精准对应到上下刻度线内。如图2所示。
图2 变换Y轴后的图表
此时Y轴已按所想所需变换不均等比例的刻度线,你看左边0到250一格,右边0到0.04一格。我想多少就多少,再也不用担心垫底了。
伪代码
function conver(source,target){
source是原始数据的一维数组
假设source形成8个刻度线,组成数组A
假设我将设计8个刻度线,组成数组B
数组A与数组B一一对应,长度相等
target是二维数组[[A1,B1],[A2,B2]......]
遍历 source数组内每个元素s
当s处于数组A两个相邻值的范围内时
把s的值投影到数组B对应的相邻值范围
最后投影后的值形成一个newSource数组
}
源码地址