用于时间序列

时间:2018-01-17 15:50:10

标签: python pandas matplotlib

我们假设您的时间序列超过1000天。以下是如何在pannable(单击并拖动)和zoomable(时间x轴和y轴值)中绘制它:

import pandas as pd
import datetime
import math
import matplotlib.pyplot as plt

N = 1000

df = pd.DataFrame(columns = ['y'])
start = datetime.datetime.now() - datetime.timedelta(days = N)
for i in range(N):
    t = start + datetime.timedelta(days = i)
    df.ix[t] = {'y': math.sin(0.1 * i)}     # btw, is there a simpler way? I tried df.ix[t]['y'] = ... but unsuccessfully

df.plot()
plt.show()

enter image description here

但是这个UI缺少一些功能,使它看起来像realtime-updating trading chart,例如:

  1. 点击并拖动以平移"默认启用功能(无需单击底部工具栏交叉图标)

  2. 在时间序列的最后日期之后阻止

  3. 添加 + / - x轴缩放按钮

  4. 允许在将新值添加到数据框(可能是另一个线程)时实时更新绘图,并使用x轴自动滚动以使新值显示在右侧< /强>

  5. (次要用户界面:删除底部图标,删除黑色矩形框,使背景变灰)

  6. 当然,我们可以修改matplotlib源代码/一个接一个地实现所有这些东西,但感觉就像重新发明轮子一样。

    pandas和/或matplotlib中是否有可用于此类情节的界面?

    注意:我没有找烛台,一条简单的曲线就可以了。

    enter image description here

0 个答案:

没有答案