0

在 Python 方面,我几乎是一个初学者,但我想弄清楚一些事情。基本上我有一个用于手动日志的 CSV 文件,所以大约有 20k 行,我希望它被绘制出来,以便在提供新值时,图表会更新。我已经设法使用 Panda 整理数据文件并结合日期/时间字段,因为我希望它作为我的 x 轴。似乎无法弄清楚如何将这些字段正确地传输到动画函数中,因为当我运行脚本时它只是空白。这是我在查找了一堆教程等之后到目前为止所尝试的:

from itertools import count
import time
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
import pandas as pd

plt.style.use('fivethirtyeight')

x_values = []
y_values = []
z_values = []
q_values = []

counter = 0 
index = count()

med_path = ("C:/Users/Owner/Downloads/Manual-Log-27Nov2020-150846.csv")
med = pd.read_csv(med_path)
df= pd.DataFrame(med)
df=df.dropna()
df['Date And Time']=df['Date']+' '+df['Time']

def animate(i):

    x = next(df['Date And Time'])
    counter = next(index)
    print(counter)
    x_values.append(x)
    y = df['Temperature']
    z = df['Pressure']
    q = df['pH']
   
    y_values.append(y)
    z_values.append(z)
    q_values.append(q)
   
    if counter >20:
        
        x_values.pop(0)
        y_values.pop(0)
        z_values.pop(0)
        q_values.pop(0)
        
        plt.cla() 

    plt.plot(x_values, y_values, 'blue',linestyle='--')
    plt.plot(x_values, q_values, 'red',linestyle='--')
    plt.plot(x_values, z_values, 'green',linestyle='--')
          
    time.sleep(.25)

fig = plt.figure()
   
ani = FuncAnimation(plt.gcf(), animate, 5000)


plt.tight_layout()
plt.show()

关于我哪里出错的任何想法?我想我已经在错误的地方替换了字段或其他东西,但正如我所说,我对此很陌生

4

0 回答 0