Algorithm 动态分离图表的y坐标

Algorithm 动态分离图表的y坐标,algorithm,math,charts,Algorithm,Math,Charts,我正试图弄明白Google Charts是如何动态分割y坐标的,以实现以下结果: 我基本上有两个问题。 1) 如何根据给定的报价动态计算y坐标分隔符的合适数量。 2) 如何计算这些线之间的步长 以前也曾提出过类似的问题: 但是这个问题是谷歌解决这个问题的方法所特有的。Y轴上的间隔数及其步长值是从最小和最大轴值之间的差值推导出来的 取地板/天花板四舍五入最小值/最大值之间的差值,并将其除以1、5或10(或5和10的倍数),得出间隔步长。间隔的数量将有所不同,但1、5或10的大小或其倍数将为Y轴

我正试图弄明白Google Charts是如何动态分割y坐标的,以实现以下结果:

我基本上有两个问题。 1) 如何根据给定的报价动态计算y坐标分隔符的合适数量。 2) 如何计算这些线之间的步长

以前也曾提出过类似的问题:


但是这个问题是谷歌解决这个问题的方法所特有的。

Y轴上的间隔数及其步长值是从最小和最大轴值之间的差值推导出来的

取地板/天花板四舍五入最小值/最大值之间的差值,并将其除以1、5或10(或5和10的倍数),得出间隔步长。间隔的数量将有所不同,但1、5或10的大小或其倍数将为Y轴标签提供令人愉快的间隔

在第一个例子中,差值是100点,所以它被除以5,以五个间隔到达,每个数字以0结尾


在第二个示例中,差值为4点,因此它被1除以,以四个间隔到达。

你说的“分割Y坐标”是什么意思?您是否在谈论Y轴的值范围,即轴上显示的最小值/最大值以及标签的间隔?我假设最小/最大值是通过查看图表的最高值和最低值并四舍五入到天花板或地板系数来计算的。然后根据最小值和最大值之间的差值计算间隔。正确,但在这些示例中,它们必须使用一些公式来确定要绘制多少条水平分隔线。我不太明白数据点和水平分隔的数量之间的相关性。看起来他们不是根据刻度的数量来决定的,而是根据间距来决定的。第一个图表使用10的间距,第二个图表使用1的间距。因此,可能有一些预定义的间距,他们使用的是效果最好的间距(可能会产生足够数量的刻度)。快速调查表明,他们使用的是1,2,5方案。也就是说,他们根据5行计算间距,然后将间距乘以10的幂,使其介于1和10之间。然后四舍五入到最接近的1、2、5或10,再除以相同的10次方,得到间距。另请参见