这是对【eCharts】版本3源码的分析结果: 通过遍历,尝试找出标签间隔数。
源代码位置: echarts-master\src\coord\axisHelper.js 函数名:axisHelper.getAxisLabelInterval
【思路】
===================================================
>>已知条件
标签的显示顺序和显示位置是固定的,只不过有的显示,有的不显示
>>思路
假设将全部标签都一一按顺序显示在各自的位置上,观察有哪些标签有重叠,最多的重叠次数就是我们要得出的“标签间隔数”
【评论】
===================================================
这个方法不能根治标签重叠。
但是从实际出发,标签文字个数通常会相近,上述方法足够“实用”。
多数情况下,
我们需要的是简化问题,找到满足通常情况(95%的可能)的方法,而不是找到满足所有情况的万能方法(当然,如果有足够简单的“万能方法”的话则另当别论)。
在“标签文字个数通常会相近”这个大前提下,会有跟“简便实用”的方法计算标签间隔:
1. 找到最长的文字,计算其长度。
2. 适当乘以大于1的系数,然后除以单位间隔(轴长度/显示对象个数),结果即为我们需要的间隔