我需要一个相当聪明的算法来想出一个“好”的网格线图(图表)。
例如,假设一个条形图的值为10、30、72和60:
最小值: 10 最大值: 72 射程: 62
第一个问题是: 你从哪里开始?在这种情况下,直观的值应该是0,但是这个值在其他数据集上是不成立的,所以我猜测:
网格最小值应该是0或者比范围内数据的最小值小的“漂亮”值。或者,也可以指定。
网格 max 值应该是一个“不错”的值,高于范围内的 max 值。或者,可以指定它(例如,如果显示百分比,则可能需要0到100,而与实际值无关)。
范围内的网格线(刻度)的数量应该是指定的,或者在给定的范围内的数字(如3-8) ,这样的值是“好的”(即整数) ,你最大限度地利用图表区域。在我们的示例中,80将是一个合理的最大值,因为它将使用90% 的图表高度(72/80) ,而100将创建更多的浪费空间。
有人知道一个好的算法吗?语言是无关紧要的,因为我将在我需要的时候实现它。