如何在不记忆整个系列的情况下绘制时间序列图?

时间:2015-10-08 12:40:37

标签: plot visualization numerical-methods

时间序列无限期增长,但我希望能够查看从开始时间t0到当前时间步骤t的情节。这意味着情节的时间尺度将不断缩小

当然,我可以保留所有时间序列数据,并且在每一步我只是用新比例重绘图。但是如果记忆也有限呢?

假设允许程序员保留一个只有N个数字的内存数组(它们可以在他们想要的数组中存储任何数字)。

尽管使用有限的内存,程序员如何绘制保留真实图形的近似形状的图形?

1 个答案:

答案 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) {
}

示例输出(机器学习算法的错误缓慢减少):

enter image description here