Python 熊猫在同一个窗口中不断地绘图

Python 熊猫在同一个窗口中不断地绘图,python,matplotlib,pandas,plot,Python,Matplotlib,Pandas,Plot,有没有办法在熊猫已经打开的窗口中绘图。假设我有一个10000项的数据框,只有一列 我想做的是在打开的绘图窗口中一次只绘制100个点,就像流式绘图一样 因此,结果将是一个打开的窗口,显示前100个点的线形图,然后是下100个点,即101到200,以此类推 我试图查看SO,但只能找到如下示例: 我不能让df.plot()方法很好地发挥作用……将绘图放入循环中,并在每个循环结束时调用clf()。这将清除matplotlib图形 您可能希望继续将其视为动画: 将绘图放入循环中,并在每个循环结束时调用cl

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

我想做的是在打开的绘图窗口中一次只绘制100个点,就像流式绘图一样

因此,结果将是一个打开的窗口,显示前100个点的线形图,然后是下100个点,即101到200,以此类推

我试图查看SO,但只能找到如下示例:
我不能让df.plot()方法很好地发挥作用……

将绘图放入循环中,并在每个循环结束时调用
clf()
。这将清除matplotlib图形

您可能希望继续将其视为动画:


将绘图放入循环中,并在每个循环结束时调用
clf()
。这将清除matplotlib图形

您可能希望继续将其视为动画:


将绘图放入循环中,并在每个循环结束时调用
clf()
。这将清除matplotlib图形

您可能希望继续将其视为动画:


将绘图放入循环中,并在每个循环结束时调用
clf()
。这将清除matplotlib图形

您可能希望继续将其视为动画:


所以我想出来了!另外,感谢@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()

所以我想出来了!另外,感谢@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()

所以我想出来了!另外,感谢@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()

所以我想出来了!另外,感谢@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()


您是否将轴对象输入到
绘图
方法?为了将来参考,您可以尝试使用
matplotlib
的动画选项进行此操作,例如,我看到了这一点,但此方法允许我仅使用pandas中的绘图功能来创建所需的各种绘图。因此,只需使用数据帧就很容易了……您是否将Axis对象输入到
plot
方法?为了将来参考,您可以尝试使用
matplotlib
的动画选项来实现这一点,例如,我看到了这一点,但此方法允许我简单地使用pandas中的plotting功能来创建我需要的各种绘图。因此,只需使用数据帧就很容易了……您是否将Axis对象输入到
plot
方法?为了将来参考,您可以尝试使用
matplotlib
的动画选项来实现这一点,例如,我看到了这一点,但此方法允许我简单地使用pandas中的plotting功能来创建我需要的各种绘图。因此,只需使用数据帧就很容易了……您是否将Axis对象输入到
plot
方法?为了将来参考,您可以尝试使用
matplotlib
的动画选项来实现这一点,例如,我看到了这一点,但此方法允许我简单地使用pandas中的plotting功能来创建我需要的各种绘图。所以只处理数据帧很容易…所以你使用的是ipython笔记本,而不是内联绘图?我已经将其粘贴到笔记本的一个单元格中。是的,我不想使用内联绘图,因为我觉得最好有一个单独的窗口来更新绘图。嗯。。你在运行什么操作系统?在我的Mac电脑上,这种方法会导致大量打印窗口堆叠在一起。我强烈建议创建图形和轴实例(
fig,ax=plt.subplot()
),并显式使用这些实例。@JD Long,ohh,我正在windows 8上运行它。我想知道如果它在mac上不工作,它在linux上也可能运行不好。我要试试保罗H的主意。我早些时候试过,但犯了一些错误,所以没能成功。我认为这将解决许多窗口的问题。那么你使用的是ipython笔记本,而不是内联绘图?我已经将其粘贴到笔记本的一个单元格中。是的,我不想使用内联绘图,因为我觉得最好有一个单独的窗口来更新绘图。嗯。。你在运行什么操作系统?在我的Mac电脑上,这种方法会导致大量打印窗口堆叠在一起。我强烈建议创建图形和轴实例(
fig,ax=plt.subplot()
),并显式使用这些实例。@JD Long,ohh,我正在windows 8上运行它。我想知道如果它在mac上不工作,它在linux上也可能运行不好。我要试试保罗H的主意。我早些时候试过,但犯了一些错误,所以没能成功。我认为这将解决许多窗口的问题。那么你使用的是ipython笔记本,而不是内联绘图?我已经将其粘贴到笔记本的一个单元格中。是的,我不想使用内联绘图,因为我觉得最好有一个单独的窗口来更新绘图。嗯。。你在运行什么操作系统?在我的Mac电脑上,这种方法会导致大量打印窗口堆叠在一起。我强烈建议创建图形和轴实例(
fig,ax=plt.subplot()
),并显式使用这些实例。@JD Long,ohh,我正在windows 8上运行它。我想知道如果它在mac上不工作,它在linux上也可能运行不好。我要试试保罗H的主意。我早些时候试过,但犯了一些错误,所以没能成功。我认为这将解决许多窗口的问题。那么你使用的是ipython笔记本,而不是内联绘图?我已经将其粘贴到笔记本的一个单元格中。是的,我不想使用内联绘图,因为我觉得最好有一个单独的窗口来更新绘图。嗯。。你在运行什么操作系统?在我的Mac上,这种方法会导致