Modelado de un sistema con ipython

Uso de ipython para el modelado de un sistema a partir de los datos obtenidos en un ensayo.


In [14]:
#Importamos las librerías utilizadas
import numpy as np
import pandas as pd
import seaborn as sns

In [15]:
#Mostramos las versiones usadas de cada librerías
print ("Numpy v{}".format(np.__version__))
print ("Pandas v{}".format(pd.__version__))
print ("Seaborn v{}".format(sns.__version__))


Numpy v1.9.2
Pandas v0.16.2
Seaborn v0.6.0

In [16]:
#Abrimos el fichero csv con los datos de la muestra
datos = pd.read_csv('prueba1.csv')

In [17]:
#datos_filtrados = datos[(datos['Diametro X'] >= 1.2) & (datos['Diametro Y'] >= 1.2)]

In [18]:
%pylab inline


Populating the interactive namespace from numpy and matplotlib

In [19]:
#Mostramos un resumen de los datos obtenidoss
datos.describe()
#datos.describe().loc['mean',['Diametro X [mm]', 'Diametro Y [mm]']]


Out[19]:
time Tmp Husillo Tmp Nozzle Diametro X Diametro Y MARCHA PARO RPM EXTR RPM TRAC
count 3181.000000 3181.000000 3181.000000 3181.000000 3181.000000 3181 3181 3181.000000 3181.000000
mean 1591.000000 62.728104 138.142282 1.475291 1.446523 1 0.9669915 1.973279 4.032438
std 918.419929 3.127022 0.762412 0.243553 0.257987 0 0.1786868 0.161293 0.285300
min 1.000000 58.500000 136.100000 0.010000 0.000000 True False 1.000000 3.814816
25% 796.000000 59.500000 137.600000 1.390000 1.370000 1 1 2.000000 3.814816
50% 1591.000000 63.000000 138.200000 1.480000 1.460000 1 1 2.000000 3.814816
75% 2386.000000 65.700000 138.600000 1.590000 1.570000 1 1 2.000000 4.410560
max 3181.000000 67.700000 140.100000 2.510000 2.200000 True True 2.000000 4.410560

In [20]:
#Almacenamos en una lista las columnas del fichero con las que vamos a trabajar
#columns = ['Diametro X', 'Diametro Y', 'RPM TRAC']
columns = ['Diametro X', 'RPM TRAC']

In [21]:
#Mostramos en varias gráficas la información obtenida tras el ensayo
datos[columns].plot(secondary_y=['RPM TRAC'],figsize=(10,10))
#datos_filtrados['RPM TRAC'].plot(secondary_y=True,style='g',figsize=(20,20)).set_ylabel=('RPM')


Out[21]:
<matplotlib.axes._subplots.AxesSubplot at 0xfb86d30>

In [24]:
# Buscamos el polinomio de orden 4 que determina la distribución de los datos
reg = np.polyfit(datos['time'],datos['Diametro X'],9)
# Calculamos los valores de y con la regresión
ry = np.polyval(reg,datos['time'])
#print ('P(x)= {} {}*X {}*X^2'.format(reg[0],reg[1],reg[2]) )

In [25]:
plt.plot(datos['time'],datos['Diametro X'],'b^', label=('f(x)'))
plt.plot(datos['time'],ry,'ro', label=('regression'))
plt.legend(loc=0)
plt.grid(True)
plt.xlabel('x')
plt.ylabel('f(x)')


Out[25]:
<matplotlib.text.Text at 0xfce0810>

In [ ]: