我正在二维图表中绘制一些浮点数据,我需要将图表的轴校准为看起来整洁的小单位。显然,这个单位根据数据的大小而变化。我正在尝试找到一种将轴划分为漂亮数字的好方法。例如,如果我的数据来自
-1.3345 至 +5.882 可以以 1.0 或 0.5 为单位进行划分。如果我的数据从 -100 到 800 将轴划分为 100 或 50 的单位。(我希望这是有道理的)现在我将范围(最大值 - 最小值)除以某个固定整数并获取单位,但是给我一个看起来很丑的数字,带有很长的尾随数字。有什么聪明的方法可以做到这一点吗?
计算良好步长的一种方法是找到范围长度的最高有效数字的值(即diff = maxVlaue - minValue
),并将其用作您的步骤。要计算最高有效数字的值,请使用以下简单的公式:
pow(10, floor(log10(diff)))
这取差值的十进制对数,丢弃小数部分(如果有),并提高 10 的对数次方。对于 7.2165 的差值,计算将返回 1;对于 721.65,它将返回 100,依此类推。
这种计算的一个缺点是网格步长diff
9.99 和diff
1.001 是相同的。解决此问题的一种方法是计算该步骤获得的网格线数量,如果线数不足(例如少于三条),则将步骤减少十倍。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)