# Código ejemplo en Python para cargar un archivo con datos, graficarlo y # realizar un ajuste lineal. # Cargo los paquetes que se usarán en el script. # Numpy agrega las funcionalidades matemáticas. # Matplotlib agrega las funcionalidades para graficar. import numpy as np import matplotlib.pyplot as plt #%% # La funcion loadtxt se encuentra dentro del paquete Numpy (np) y carga los # datos que se encuentran en el archivo "datos.txt". datos=np.loadtxt('datos.txt') # Selecciono un subconjunto de los datos del archivo para trabajar. # El primer parametro selecciona todas las filas, el segundo selecciona # los datos con indices entre 0 y 299 en saltos de a diez. data=datos[:,0:300:10] #%% # Genero el vector con los errores a partir del valor de la señal y como indica # el manual del equipo. errory= abs(data[1,:])*0.03+0.00001 # Generamos vectores individuales para cada eje. x=data[0,:] y=data[1,:] # Grafico las variables con la funcion error bar del paquete MatplotLib. # Luego cambio las etiquetas (labels) de los ejes. Prendo la grilla. plt.errorbar(x,y,errory) plt.xlabel('Time') plt.ylabel('Voltage') plt.grid() #%% # Uso la funcion polyfit del paquete Numpy para hacer el ajuste lineal. # La funcion devuelve dos Outputs, que se cargan en dos variables distintas, # p y cov. El parametro cov = true activa el Output que contiene los errores # de los parametros del ajuste (diagonal de la matriz de covarianza). # Los pesos se usan como la inversa de los errores para cada punto (ver help). p,cov = np.polyfit(x,y,1,cov=True,w=1/errory) #%% # Grafico nuevamente usando barras de error y superponemos el gráfico de una # recta con los parametros obtenidos del ajuste. plt.errorbar(x,y,errory,linestyle='',marker='s',markersize=5,capsize=3) plt.plot(x, p[0]*(x)+p[1],'-') plt.xlabel('Time') plt.ylabel('Voltage') plt.grid()