Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何仅显示更新/实时图表中的最后20个结果_Python_Pandas_Matplotlib_Animation_Graph - Fatal编程技术网

Python 如何仅显示更新/实时图表中的最后20个结果

Python 如何仅显示更新/实时图表中的最后20个结果,python,pandas,matplotlib,animation,graph,Python,Pandas,Matplotlib,Animation,Graph,每次向我的csv文件中添加新值时,我都会运行此脚本进行更新(这是一个从计算机中获取值的手动日志): 由于它是一个如此大的文件(20k行左右),因此生成的图形非常大,您无法正确读取数据。有没有办法让它只显示最近的20个读数?你可以对它进行切片或获取前n个记录。您可以在代码行之后应用以下内容:data=data.dropna() 谢谢你!这给了我一个在后面使用.tail()的想法,所以它现在的运行方式是这样的:``data=pd.read\u csv('C:/Users/Owner/Download

每次向我的csv文件中添加新值时,我都会运行此脚本进行更新(这是一个从计算机中获取值的手动日志):


由于它是一个如此大的文件(20k行左右),因此生成的图形非常大,您无法正确读取数据。有没有办法让它只显示最近的20个读数?

你可以对它进行切片或获取前n个记录。您可以在代码行之后应用以下内容:data=data.dropna()


谢谢你!这给了我一个在后面使用.tail()的想法,所以它现在的运行方式是这样的:``data=pd.read\u csv('C:/Users/Owner/Downloads/Manual-Log-27Nov2020-150846.csv')data=data.dropna()data=pd.DataFrame(data)data=data.tail(25)```
from itertools import count
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation

plt.style.use('fivethirtyeight')

x_vals = []
y_vals = []

counter=0
index = count()


def animate(i):
    data = pd.read_csv('C:/Users/Owner/Downloads/Manual-Log-27Nov2020-150846.csv')
    data=data.dropna()
    data['Date And Time']=data['Date']+' '+data['Time']
    Date = data['Date And Time']
    Temp = data['Temperature']
    Pressure = data['Pressure']
    pH = data['pH']
    
        
    plt.cla()

    plt.plot(Date, Temp, label='Temperature')
    plt.plot(Date, Pressure, label='Pressure')
    plt.plot(Date, pH, label='pH')
    
    plt.legend(loc='upper left')
    plt.xlabel('Date and Time')
    plt.ylabel('Y Values')
    plt.xticks(rotation=90)
    
    plt.tight_layout()


ani = FuncAnimation(plt.gcf(), animate, interval=30000)

plt.tight_layout()
plt.show()
df=pd.DataFrame({'Count':[2,33,4,6,8,9],'apha':['A','B','C','D','E','F']})
df_sorted=sorted_df = df.sort_values(by=['Count'], ascending=True) # in case needed
df_limited=df_sorted.head(3) # this is one you are looking for