我试图复制 Excel 在计算折线图的 Y 轴边界方面的“正确”感觉。
例如,假设我目前有一个图表,上面有三个数据点。(0, 100), (1,500), (2,930)。
我目前拥有的简单代码将 Y 轴最小值设置为 100,将 Y 轴最大值设置为 930。这个想法是为了防止没有 0 值的数据集扭曲图表的大小。这行得通,但我觉得它可能会好得多。
对于上面的示例,Excel 在 0 到 1000 范围内绘制数据点。我正在尝试创建一个通用算法来绘制相同的“感觉良好”范围。然而,事实证明这有点棘手。
我觉得我需要几点信息:
- 上限值和下限值的数量级(10 的幂)。
- 始终采用数据点的上限/下限——当数据点与绘制的最大/最小范围具有相同的值时,还不是很清楚。
从那里我有点茫然。
如果我将 930 作为最大数据点值,我知道它的数量级是 3。因此,我将其最大值加 1 并将其余值加 0 - 结果为 1000。
如果我将 1030 作为最大数据点值,我知道它的数量级是 4。如果我将其最大值加 1 并为零,其余的结果是 2000。Excel 在绘图时将 1200 绘制为最大范围 (0, 100 ), (1,500), (2,930), (3,1030)。
这个问题在较大的值下会迅速退化——总是增加最大值并不完全正确,但有时确实如此。有没有人有这方面的经验可以对更好的方法有所了解?