我正在显示一个动画图表,时间为x轴 - 需要给它一些标签。
在时间t
,x轴的范围为0 to t
,它不是滑动窗口。
有两个明显的解决方案:
a)每秒标记
这不起作用,因为当t变大时,我的图表无法读取这么多x标签。
b)将t
除以5,并将其用作增量。
这是即时的,但由于不稳定性(以及选择的数字的丑陋),在动画图上完全无法使用。
所以我正在寻找的是t
的函数,它返回五个数字,我可以用来标记图形的x轴。
这些数字应为:
(e.g. 50, 100, 150, 200, 250)
0
和t
之间大致均匀分布(即[t, t-1, t-2, t-3, t-4]
是非解决方案)。并不要求它们的宽度完全相同。
答案 0 :(得分:2)
我认为,总是要完全五个标签的要求可能是一个显而易见的问题。大多数人会考虑1,2,5,10,20,50,100,200,500模式之后的步长,但是如果你在你的情况下这样做,你通常会在引入一个新标签的同时丢弃4/10个标签。所以我要做的就是考虑上面列出的步长,并且只要在该宽度上至少有两个步骤的空间,就切换到下一个更高的步长。所以当你达到t = 100时,你就会从20,40,60,80切换到50,100。如果可以接受更多标签,您当然可以微调切换规则。这仍然意味着在它们不会滑入的位置在轴上引入新数字。如果这是一个真正的问题,那么你必须使用序列1,2,10,20,100,200,...或1, 5,10,50,100,500,......从那以后每一步宽度都是它之前步长的倍数。然而,这将导致标签数量出现更大的跳跃。