加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 实时DataFrame图

发布时间:2020-12-20 13:50:14 所属栏目:Python 来源:网络整理
导读:我有一个pandas DataFrame,它在while循环中更新,我想实时绘制这个,但不幸的是我没有得到如何做到这一点. 一个samplae代码可能是: import numpy as npfrom matplotlib import pyplot as pltfrom matplotlib import animationimport time as tmfrom datetime
我有一个pandas DataFrame,它在while循环中更新,我想实时绘制这个,但不幸的是我没有得到如何做到这一点.
一个samplae代码可能是:

import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation
import time as tm
from datetime import datetime,date,time
import pandas as pd

columns = ["A1","A2","A3","A4","A5","B1","B2","B3","B4","B5","prex"]
df = pd.DataFrame()
"""plt.ion()"""
plt.figure()
while not True:

    now = datetime.now()
    adata = 5 * np.random.randn(1,10) + 25.
    prex = 1e-10* np.random.randn(1,1) + 1e-10
    outcomes = np.append(adata,prex)
    ind = [now]
    idf = pd.DataFrame(np.array([outcomes]),index = ind,columns = columns)
    df = df.append(idf)
    ax = df.plot(secondary_y=['prex'])

    plt.show()
    time.sleep(0.5)

但如果我取消注释“”“plt.ion()”“”我会打开许多??不同的窗口.否则我必须关闭窗口才能获得更新的图.
有什么建议?

解决方法

您可以指定要使用的 plot轴,而不是每次调用时创建不同的轴.要在交互模式下重绘绘图,可以使用 draw而不是show.

from matplotlib import animation
import time as tm
from datetime import datetime,"prex"]
df = pd.DataFrame()
plt.ion()
fig = plt.figure()
ax = fig.add_subplot(111) # Create an axes. 
while True:

    now = datetime.now()
    adata = 5 * np.random.randn(1,columns = columns)
    df = df.append(idf)
    df.plot(secondary_y=['prex'],ax = ax) # Pass the axes to plot. 

    plt.draw() # Draw instead of show to update the plot in ion mode. 
    tm.sleep(0.5)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读