Echarts——实现折线图Y轴不等距百分比(最终解决方案)

出现背景

  最近公司有一个需求,主要是想展示近7日产品的一个良品率(百分率制)。但是呢,基本上每天这个百分比率在90%~100%之间,很少有低于90%的。我就根据这个需求,很快就做出折线图表,图表右侧的Y轴是从0%-100%,并按20%间隔。

Echarts——实现折线图Y轴不等距百分比(最终解决方案)

  给到产品后,TA说线上的数据基本上都是90%-100%,你这样的话就看不出太大的折线趋势,折线的起伏不是很明显,下面空白了一大片,着眼一看,确实不利于观测。

  后来,TA说因为数据比较固定,那么是否可以设置一个最低值呢?比如,在Y轴最低处设置一个60%,那整体不是就拉伸开了吗。后来我就尝试了一下,如下图所示:

Echarts——实现折线图Y轴不等距百分比(最终解决方案)
  刚开始以为就这么简单搞定,当天测试工程师测试的时候,又发现一个问题。如果中间某一天没有生产,那么就没有数据,没有数据当时处理为0。不过图表它就不这样认为了,我偏要捣乱一下。当中间某一天没数据时,如下图所示:

Echarts——实现折线图Y轴不等距百分比(最终解决方案)
  我勒个去,这是什么鬼,29日那天没数据默认为0,结果就飞到下面去了,显然不符合需求。那么就设置一个最低值为0,第二隔为60%,这样子总可以了嘛。来吧,如下图所示:

Echarts——实现折线图Y轴不等距百分比(最终解决方案)
  到这里我觉得应该搞定了,给产品看了过后,TA觉得还行,那就这样吧。

  没过多久,突然出现某一天良率为80%,和Y轴的刻度对不上,然后检查后才发现全部的都没对应上Y轴。如下图所示:

Echarts——实现折线图Y轴不等距百分比(最终解决方案)
  原因:虽然我们Y轴设置了不等距显示,但是实际上Y轴还是按照原来0-100%,来均匀分布,并没有实现不等距显示效果,想到这个问题很头疼。

  当天查了很多资料,都没有找到相应的解决办法。晚上回家也很想了很久,第二天上班突然灵机一动,可以根据Y轴比例和当前良率的值来设定它的对应位置,虽然麻烦点。

  ****以上就是我在开发过程中遇到的一个Echart折线图不等距百分比率问题,下面会跟大家讲一下我的思路和相关算法。

解决思路

  下次给大家更新,谢谢!

相关文章: