我想以类似直方图的方式显示测量值。用户可以在性质上非常不同的各种测量之间进行选择。例如,方法复杂度通常会产生 1 到 20 之间的值。相比之下,源文件的最后更改日期会产生 unix 时间戳,这是非常大的数字。
我知道如何将这些值范围简单地缩放为直方图的大小(高度),但这种方法有时会产生非常混乱的结果。例如,当所有值都非常大时,直方图中的所有条形几乎都处于最大高度,几乎无法感知差异。在这种情况下,最好从所有值中减去接近最小值的常数以获得更独特的可视化效果。
其他测量会产生非常小的值范围内的值,例如 1 到 3。在这种情况下,可视化非常具有误导性,因为 3 会缩放到可能的最大尺寸,而 1 会缩放到可能的最小尺寸,并且差异看起来很大,虽然不是。在这种情况下,最好为所有值添加一个常数,以减少直方图条之间的差异。
是否有任何通用的方法来解决这个问题,一方面确保独特性,另一方面避免误导性的可视化?任何算法可以很好地将任意一系列值拟合到给定的间隔中?