我正在编写一些代码来在我们的软件中显示条形图(或线形图)。一切都很顺利。让我难过的是标记 Y 轴。
来电者可以告诉我他们想要标记 Y 刻度的精细程度,但我似乎被困在以“有吸引力”的方式标记它们的确切内容上。我无法形容“有吸引力”,也许你也不能,但我们一看到就知道,对吧?
因此,如果数据点是:
15, 234, 140, 65, 90
用户在 Y 轴上要求 10 个标签,用纸和铅笔稍微摸索得出:
0, 25, 50, 75, 100, 125, 150, 175, 200, 225, 250
所以那里有 10 个(不包括 0),最后一个超出最大值(234 < 250),每个 25 是一个“不错的”增量。如果他们要求 8 个标签,增加 30 个看起来不错:
0, 30, 60, 90, 120, 150, 180, 210, 240
九个会很棘手。也许只是使用了 8 或 10 并称它足够接近就可以了。当某些点为负数时该怎么办?
我可以看到 Excel 很好地解决了这个问题。
有谁知道解决这个问题的通用算法(即使是一些蛮力也可以)?我不必很快做,但它应该看起来不错。