【发布时间】:2016-02-01 02:55:12
【问题描述】:
我有一个线程每 2 秒连续写入一个文本文件。 Matplotlib 图(实时更新图)引用了相同的文件。
所以当我启动脚本时,我会打开一个图表并在一个线程上启动文件写入过程。该文件正在更新,但不是我的图表。只有在文件写入完成后,文件上的数据才会显示在图表上。
但这不是实时图表的概念。我希望数据表示在数据写入文件时显示。我在这里做错了什么?
这是我的主要功能
def Main():
t1=Thread(target=FileWriter)
t1.start()
ani = animation.FuncAnimation(fig, animate, interval=1000)
plt.show()
print("done")
我的文件写入函数
def FileWriter():
f=open('F:\\home\\WorkSpace\\FIrstPyProject\\TestModules\\sampleText.txt','w')
k=0
i=0
while (k < 20):
i+=1
j=randint(10,19)
data = f.write(str(i)+','+str(j)+'\n')
print("wrote data")
time.sleep(2)
k += 1
我的图表功能
def animate(i):
pullData = open("sampleText.txt","r").read()
dataArray = pullData.split('\n')
xar = []
yar = []
for eachLine in dataArray:
if len(eachLine)>1:
x,y = eachLine.split(',')
xar.append(int(x))
yar.append(int(y))
ax1.clear()
ax1.plot(xar,yar)
【问题讨论】:
标签: python matplotlib graph