Hi everybody! I'm designing a test bank than shows me 3 temperatures of a vacuum pump, the current of the motor than impulse that pump, the rpm of the vacuum pump, the KPa of the pump and i want to save all the data reading by the sensors in the test time in a txt archive at the same time I want to see all those values in a graphic interface in Python 3.7 and here start the headaches
So i began with the 3 temperature values, for this i connected 3 termocuples to an Arduino UNO board and i made this code:
This is of course 'C' code, still looks better in 'Python' frame:

and when i push the bottom "EMPEZAR" shows me this

And i want to plot my graph in my interface
by the way i can't put the axes limits in my graph (and that results into a complete disaster as seen in the second image)
i don't know how to do this i'm a newbie in Python
if anybody coulds help me i'll be very grateful.

So i began with the 3 temperature values, for this i connected 3 termocuples to an Arduino UNO board and i made this code:
This is of course 'C' code, still looks better in 'Python' frame:
//This code sense 3 temperatures detected by Type "K" thermocuples #include <max6675.h> //Librería del MAX6675 unsigned long interval=5000; // unsigned long previousMillis=0; // int ktcSO = 8; int ktcCS1 = 9; // Thermocuple 1 int ktcCLK = 10; int ktcCS2 = 11; // Thermocuple 2 int ktcCS3 = 6; // Thermocuple 3 int temp1; // int temp2; // int temp3; // int contadordetiempo = 0; MAX6675 ktc1(ktcCLK, ktcCS1, ktcSO); MAX6675 ktc2(ktcCLK, ktcCS2, ktcSO); MAX6675 ktc3(ktcCLK, ktcCS3, ktcSO); void setup() { Serial.begin(9600); / } void loop() { unsigned long currentMillis = millis(); if ((unsigned long)(currentMillis - previousMillis) >= interval) { contadordetiempo = contadordetiempo + 5; Serial.print(contadordetiempo); //Esto lo imprime python Serial.print("\t"); temp1 = ktc1.readCelsius(); Serial.print(temp1) Serial.print("\t"); temp2 = ktc2.readCelsius(); Serial.print(temp2); Serial.print("\t"); temp3 = ktc3.readCelsius(); Serial.print(temp3); Serial.print("\n"); previousMillis = millis(); } }Then i design this code to watch my values in a graphic
import serial import time import matplotlib.pyplot as plt import matplotlib.animation as animation from tkinter import * from matplotlib.axes import * arduino= serial.Serial("COM6",9600) class system: def __init__(self,master): self.master=master self.fig = plt.figure(figsize=(8,8), dpi=80) self.ax1 = self.fig.add_subplot(111) plt.ion() self.t1=[] self.t2=[] self.t3=[] self.tiempo=[] self.botonalm=Button(master, text="ALMACENAR", command=self.guardardata,font=("Arial Black",14),bg="cyan").place(x=200,y=450) self.botonsalir=Button(master, text="SALIR",command=master.quit,font=("Arial Black",14),bg="red",fg="white").place(x=450,y=450) self.botoncontinuar=Button(master, text="EMPEZAR",command=self.animacion,font=("Arial Black",14),bg="green",fg="white").place(x=650,y=450) def guardardata(self): archivo=open("data.txt","a") archivo.write("\nData Banco de prueba de bombas de vacío\n") archivo.write("Fecha: "+str(time.localtime()[2])+"-"+str(time.localtime()[1])+"-"+str(time.localtime()[0])+"\nHora: "+str(time.localtime()[3])+":"+str(time.localtime()[4])+"\n") archivo.write("MARCA: "+ marca.get() + "\n" + "MODELO: " + modelo.get() + "\n" +"RODAMIENTOS: "+ rodamiento.get() +"\n"+ "ESTOPERA: "+ estopera.get() +"\n"+"PALETAS: "+ paleta.get() +"\n"+"CARACTERÍSTICAS GENERALES: "+ caracGen.get() + "\n" + "OBSERVACIONES: " + obs.get() + "\n") def animada(self,i): while i<=200: i += 1 e = arduino.readline().decode("utf-8").strip("\n") s=e.split("\t") self.contador= s[0] self.temp1= s[1] self.temp2= s[2] self.temp3= s[3] self.t1.append(self.temp1) self.t2.append(self.temp2) self.t3.append(self.temp3) self.tiempo.append(self.contador) readingcount.set(self.contador) readingtemp1.set(self.temp1) readingtemp2.set(self.temp2) readingtemp3.set(self.temp3) archivolectura.write(str(self.contador) +"\t"+ str(self.temp1) +"\t"+ str(self.temp2) +"\t"+ str(self.temp3) +"\n") #Para ver detalles en la shell print("Temp 1 = " + self.temp1) print("Temp 2 = " + self.temp2) print("Temp 3 = " + self.temp3) print("Tiempo de prueba = " + self.contador) self.line1=plt.plot(self.tiempo, self.t1) self.line2=plt.plot(self.tiempo, self.t2) self.line3=plt.plot(self.tiempo, self.t3) plt.setp(self.line1, color='blue') plt.setp(self.line2, color='orange') plt.setp(self.line3, color='green') return self.line1, self.line2, self.line3 def animacion(self): self.ani=animation.FuncAnimation(self.fig, self.animada) ejecutar(mostrar(fase2)) plt.show() archivolectura=open("lecturas.txt","a") archivolectura.write("\nBanco de pruebas para bombas de vacío - Industrias BJT\n") archivolectura.write("Fecha: "+str(time.localtime()[2])+"-"+str(time.localtime()[1])+"-"+str(time.localtime()[0])+"\nHora: "+str(time.localtime()[3])+":"+str(time.localtime()[4])+"\n") archivolectura.write("\nt\tT1\tT2\tT3\n") fase1= Tk() fase1.title("FASE 1 : CARACTERISTICAS DE LA BOMBA") fase1.geometry("1020x600") my_gui = system(fase1) fase2 = Toplevel(fase1) fase2.title("FASE 2: MEDICIÓN DE VARIABLES") fase2.geometry("1020x600") fase2.config(bg="black") def mostrar(ventana): ventana.deiconify() def ocultar(ventana): ventana.withdraw() def ejecutar(f): fase1.after(200,f) ocultar(fase2) marca=StringVar() modelo=StringVar() rodamiento=StringVar() estopera=StringVar() paleta=StringVar() caracGen=StringVar() obs=StringVar() titulo=Label(fase1,text="BANCO DE PRUEBAS PARA BOMBAS DE VACÍO",font=("Arial Black", 18),fg="Black").place(x=200, y=10) indi=Label(fase1,text="INTRODUZCA LAS CARACTERISTICAS DE LA BOMBA DE VACÍO A PROBAR",font=("Arial", 14),fg="red").place(x=200, y=60) ema=Label(fase1,text="MARCA: ",font=("Arial Black",14)).place(x=50, y=120) emaCaja=Entry(fase1,textvariable=marca,font=("Arial Black",14)).place(x=150, y=120) emo=Label(fase1,text="MODELO: ",font=("Arial Black",14)).place(x=50, y=200) emoCaja=Entry(fase1,textvariable=modelo,font=("Arial Black",14)).place(x=160, y=200) rod=Label(fase1,text="RODAMIENTOS: ",font=("Arial Black",14)).place(x=500, y=90) rodCaja=Entry(fase1,textvariable=rodamiento,font=("Arial Black",14)).place(x=680, y=90) est=Label(fase1,text="ESTOPERAS: ",font=("Arial Black",14)).place(x=500, y=170) estCaja=Entry(fase1,textvariable=estopera,font=("Arial Black",14)).place(x=680, y=170) pal=Label(fase1,text="PALETAS: ",font=("Arial Black",14)).place(x=500, y=250) palCaja=Entry(fase1,textvariable=paleta,font=("Arial Black",14)).place(x=680, y=250) cG=Label(fase1,text="CARACTERÍSTICAS\nGENERALES: ",font=("Arial Black",14)).place(x=300, y=300) cGCaja=Entry(fase1,textvariable=caracGen,font=("Arial Black",14)).place(x=550, y=300) eobs=Label(fase1,text="OBSERVACIONES: ",font=("Arial Black",14)).place(x=300, y=400) obsCaja=Entry(fase1,textvariable=obs,font=("Arial Black",14)).place(x=550, y=400) Titulo = Label(fase2, text= 'Banco de pruebas de bombas de vacío', bg="black",fg = 'yellow', font = ("Arial Black", 20)).place(x=10,y=0) bjt=Label(fase2,text= "Industrias BJT C.A.", bg="black",fg = 'white', font = ("Arial", 12)).place(x=10,y=40) #btn1= Button(ventana,text= "SALIDA \n DE \n EMERGENCIA", command=cerrar, fg= "white", bg= "red",relief=SOLID).place(x=800,y=100) #ESTAMIERDANOMECIERRAJODER #Tipo de datos entregados. readingcount=StringVar() readingtemp1=StringVar() readingtemp2=StringVar() readingtemp3=StringVar() #readingcurr=StringVar() #readingpres=StringVar() #readingrpm=StringVar() imagen1=PhotoImage(file="valid.png") parametros=Label(fase2, image=imagen1).place(x=730,y=10) #Variables Físicas temperaturas=Label(fase2, text= "TEMPERATURA (ºC)", bg="black", font=("Arial Black",14),fg="white").place(x=10,y=70) temperatura1Caja=Label(fase2, text="T1=", bg="blue",font=("Lucida Console", 14),fg="white").place(x=20, y=100) temperatura1=Label(fase2,textvariable = readingtemp1,bg="blue",font=("Lucida Console", 14), fg="white").place(x=50,y=100) temperatura2Caja=Label(fase2, text="T2=", bg="orange",font=("Lucida Console", 14),fg="white").place(x=150, y=100) temperatura2=Label(fase2,textvariable = readingtemp2,bg="orange",font=("Lucida Console", 14), fg="white").place(x=180,y=100) temperatura3Caja=Label(fase2, text="T3=", bg="green",font=("Lucida Console", 14),fg="white").place(x=280, y=100) temperatura3=Label(fase2,textvariable = readingtemp3,bg="green",font=("Lucida Console", 14), fg="white").place(x=310,y=100) rpmCaja=Label(fase2, text="RPM=", bg= "light green", font=("Lucida Console",14), fg="black").place(x=20,y=500) rpm=Label(fase2, text="1200", bg="light green", font=("Lucida Console",14), fg="black").place(x=70,y=500) presionCaja=Label(fase2,text="PRESION (-KPa)=", bg="light blue", font=("Lucida Console",14), fg="black").place(x=150,y=500) presion=Label(fase2,text="50", bg="light blue",font=("Lucida Console",14), fg="black").place(x=320,y=500) corrienteCaja=Label(fase2, text= "CORRIENTE DEL MOTOR (A)=", bg="light yellow", font=("Lucida Console",14), fg="black").place(x=380, y=500) corriente=Label(fase2, text="8.80" ,bg="light yellow",font=("Lucida Console",14),fg="black").place(x=650, y=500) #Contador de tiempo :v TiempoCaja=Label(fase2, text= "TIEMPO DE PRUEBA (seg.)=", bg="white", font=("Lucida Console",14), fg="black").place(x=400, y=100) Tiempo=Label(fase2,textvariable=readingcount ,text=" seg.",bg="white",font=("Lucida Console",14),fg="black").place(x=670, y=100) marfase2Caja=Label(fase2,text = "MARCA: ",bg="black",font=("Lucida Console", 14), fg="white").place(x=730,y=200) marfase2=Label(fase2,textvariable = marca,bg="black",font=("Lucida Console", 14), fg="white").place(x=800,y=200) modfase2Caja=Label(fase2,text = "MODELO: ",bg="black",font=("Lucida Console", 14), fg="white").place(x=730,y=230) modfase2=Label(fase2,textvariable = modelo,bg="black",font=("Lucida Console", 14), fg="white").place(x=810,y=230) rodfase2Caja=Label(fase2,text = "RODAMIENTOS: ",bg="black",font=("Lucida Console", 14), fg="white").place(x=730,y=260) rodfase2=Label(fase2,textvariable = rodamiento,bg="black",font=("Lucida Console", 14), fg="white").place(x=870,y=260) estfase2Caja=Label(fase2,text = "ESTOPERAS: ",bg="black",font=("Lucida Console", 14), fg="white").place(x=730,y=290) estfase2=Label(fase2,textvariable = estopera,bg="black",font=("Lucida Console", 14), fg="white").place(x=850,y=290) palfase2Caja=Label(fase2,text = "PALETAS: ",bg="black",font=("Lucida Console", 14), fg="white").place(x=730,y=320) palfase2=Label(fase2,textvariable = paleta,bg="black",font=("Lucida Console", 14), fg="white").place(x=830,y=320) cGfase2Caja=Label(fase2,text = "CARACTERISTICAS: ",bg="black",font=("Lucida Console", 14), fg="white").place(x=730,y=350) cGfase2=Label(fase2,textvariable = caracGen,bg="black",font=("Lucida Console", 14), fg="white").place(x=910,y=350) obsfase2Caja=Label(fase2,text = "OBSERVACIONES: ",bg="black",font=("Lucida Console", 14), fg="white").place(x=730,y=400) obsfase2=Label(fase2,textvariable = obs,bg="black",font=("Lucida Console", 14), fg="white").place(x=900,y=400) fase1.mainloop()and when i run it shows me this

and when i push the bottom "EMPEZAR" shows me this

And i want to plot my graph in my interface

i don't know how to do this i'm a newbie in Python

