Matplotlib 如何在从文件读取和打印实时数据时更新x轴和y轴?

Matplotlib 如何在从文件读取和打印实时数据时更新x轴和y轴?,matplotlib,python-3.7,Matplotlib,Python 3.7,我正在读取一个串行端口,并在每个特定时间段将数据记录到文件中。经过所有处理后,我手里拿着时间戳(例如14:2:2)和值(例如12.3)。我需要在图形中绘制时间戳和值,并根据通过另一个脚本写入文件的内容将其同时更新为数据 它正在工作,但随着样本的增长,绘图变得笨拙(刻度差越来越小)。数据到达时,如何更新x轴和y轴限制 我是matplotlib的新手,并在windows中使用python 3.6及其用于小x轴和y轴数据的功能尝试了这段代码 fig = plt.figure() ax1 = fig.a

我正在读取一个串行端口,并在每个特定时间段将数据记录到文件中。经过所有处理后,我手里拿着时间戳(例如14:2:2)和值(例如12.3)。我需要在图形中绘制时间戳和值,并根据通过另一个脚本写入文件的内容将其同时更新为数据

它正在工作,但随着样本的增长,绘图变得笨拙(刻度差越来越小)。数据到达时,如何更新x轴和y轴限制

我是matplotlib的新手,并在windows中使用python 3.6及其用于小x轴和y轴数据的功能尝试了这段代码

fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
plt.tight_layout()

def plotDataOf(i,file):
   totalLines = open(file,"r").read()
   lines = totalLines.split('\n')
   xlist = []
   ylist = []
   for line in lines:
        if len(line)>1:
           x,y = line.split(',')
           xlist.append(x)
           ylist.append(y)
   ax1.clear()
   ax1.grid()
   ax1.plot(xlist,ylist)
   plt.xticks(rotation=45, ha='right')
   plt.title(file.split('.')[0])
   plt.ylabel('Data')

ani=animation.FuncAnimation(fig, plotDataOf,fargs=[userFile], interval=1000)
 plt.show()

我希望x轴和y轴根据文件中的数据增长,而不会在绘图上变丑。

您忘记将字符串转换为数字。实际上,我的数据是字符串。当我把它们添加到列表中时,它们变得越来越大,最后图缩小了。假设你有
“A”、“B”、“C”
,那么从某一点开始,你想省略
“B”
,只显示
“A”
“C”
?@ImportanceOfBeingErnest感谢你的回复。我的要求是随着列表的增长扩展x轴和y轴。对于较少的样本,绘图非常好,但随着数据的增加,绘图会失败。你能提出一些想法吗?你想要一个更大的数字吗?(从某种意义上讲,开始时的数字是50像素,随着数据量的增加,数字会增加到1000像素左右。)