时间序列无限期增长,但我希望能够查看从开始时间t0到当前时间步骤t的情节。这意味着情节的时间尺度将不断缩小。
当然,我可以保留所有时间序列数据,并且在每一步我只是用新比例重绘图。但是如果记忆也有限呢?
假设允许程序员保留一个只有N个数字的内存数组(它们可以在他们想要的数组中存储任何数字)。
尽管使用有限的内存,程序员如何绘制保留真实图形的近似形状的图形?
答案 0 :(得分:0)
我找到了一个简单的解决方案,它可以绘制一个任意长的时间序列,而不会忽视起始部分。
技巧是:当绘图到达图形的右边缘时,将整个图形重新缩放1/2,并将压缩图形放在左半边。然后开始在中点开始绘图。
通过反复执行此操作,图表最终会显示" log"时间尺度,左侧是指数压缩的,但用户仍然可以看到"形状"在遥远的过去。
算法:
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if (menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception ex) {
}
示例输出(机器学习算法的错误缓慢减少):