import numpy as np import matplotlib.pyplot as plt plt.ion() plt.close("all") #Leo el archivo txt file="resorteamort.txt" Misdatos = np.loadtxt(file, delimiter="\t",skiprows=4) #Datos ordenados col1 : x, col 2: y1, col3:y2 x = Misdatos[:,0] #tiempo y1 = Misdatos[:,1] #fuerza #Grafico los datos del archivo plt.figure(1) plt.plot(x,y1,'.-') plt.grid('on'); plt.xlabel('t [seg]'); plt.ylabel('Fuerza'); plt.show() #Definimos una funcion que nos encuentra los picos def hallar_picos(t,y): tS = t yS = y #Creamos dos arrays tp = np.empty((0, 1)) #Tiempo de los picos yp = np.empty((0, 1)) #Amplitud de los picos for i in range(1,len(yS)-1): if (yS[i-1] < yS[i] ) & (yS[i] > yS[i+1]): idx = np.where(t==tS[i]) tp = np.append(tp, [t[idx]]) yp = np.append(yp, [y[idx]]) return tp, yp # Calcula picos en funciĆ³n del tiempo picos = hallar_picos(x,y1) picos = np.array(picos) # Traspongo los datos para guardarlos en 2 columnas plt.figure(2) plt.plot(x,y1,'.-') plt.plot(picos[:,0], picos[:,1], 'o', markersize=3) plt.grid('on'); plt.xlabel('t [seg]'); plt.ylabel('Fuerza'); plt.show() # Guarda los picos np.savetxt('picos.txt', picos, delimiter='\t')