大熊猫一直在同一个窗口密谋

时间:2014-11-25 20:23:42

标签: python matplotlib pandas plot

有没有办法在熊猫已经打开的窗口中绘图。假设我有一个10,000项的数据框,只有一列。

我想要做的是在开放的情节窗口中一次只绘制100个这样的点,就像流图一样。

结果将是一个打开的窗口,显示前100个点的线图,然后显示接下来的100个点,即101到200等等......

我试着看SO,但只能找到这样的例子: Real time matplotlib plot is not working while still in a loop 我不能用df.plot()方法让它玩得很好....

2 个答案:

答案 0 :(得分:3)

将你的情节放在一个循环中,并在每个循环结束时调用clf()。这将清除matplotlib的数字。

您可能希望将此视为动画:

http://nbviewer.ipython.org/url/jakevdp.github.io/downloads/notebooks/AnimationEmbedding.ipynb

答案 1 :(得分:0)

所以我明白了!另外,感谢@JD Long的帮助。这是一个有效的样本。我没有使用相同的数据帧值,而是动态创建新列,然后绘制:

import time
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
pd.options.display.mpl_style = 'default'


df = pd.DataFrame({'a':[3,4,45,6,70,6],'b':[4,4,2,4,2,2]})

plt.axis([0, 50, 0, 100])
plt.ion()
plt.show()

for i in range(1,6):
    df.c = df.a + i
    df.b = df.b - i
    df.c.plot(title = str(i)+'th Iteration')
    df.b.plot(kind='bar', title = str(i)+'th Iteration')
    plt.draw()
    time.sleep(1)
    plt.pause(0.0001)
    plt.clf()
plt.close()