有没有办法在熊猫中已经打开的窗口中绘制。假设我有一个包含 10,000 个项目且只有一列的数据帧。
我想做的是在那个打开的绘图窗口中一次只绘制 100 个点,就像流式绘图一样。
因此,结果将是一个打开的窗口,显示前 100 个点的线图,然后是接下来的 100 个点,即 101 到 200 点,依此类推。
我尝试查看 SO,但只能找到以下示例:实时 matplotlib 绘图在循环中时不起作用我不能让它很好地使用 df.plot() 方法....
绘图放在一个循环中,并在每个循环结束时调用clf()
。这将清除 matplotlib 数字。
您可能希望将其视为动画:
http://nbviewer.ipython.org/url/jakevdp.github.io/downloads/notebooks/AnimationEmbedding.ipynb
所以我想通了!另外,感谢您@JD龙的帮助。下面是一个有效的示例。我没有使用相同的数据帧值,而是动态创建新列,然后绘制:
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()