Uso de ipython para el análsis y muestra de los datos obtenidos durante la producción. Los datos analizados son del filamento de bq el día 20 de Julio del 2015
In [1]:
#Importamos las librerías utilizadas
import numpy as np
import pandas as pd
import seaborn as sns
In [2]:
#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__))
In [3]:
#Abrimos el fichero csv con los datos de la muestra
datos = pd.read_csv('BQ.CSV')
In [20]:
%pylab inline
In [5]:
#Mostramos un resumen de los datos obtenidoss
datos.describe()
Out[5]:
In [6]:
#Almacenamos en una lista las columnas del fichero con las que vamos a trabajar
columns = ['Diametro X [mm]', 'Diametro Y [mm]', 'RPM']
In [7]:
#Mostramos en varias gráficas la información obtenida tras el ensayo
datos[columns].plot(subplots=True, figsize=(20,20))
Out[7]:
Representamos ambos diámetros en la misma gráfica
In [8]:
datos.ix[:, "Diametro X [mm]":"Diametro Y [mm]"].plot(figsize=(16,3))
Out[8]:
In [9]:
datos.ix[:, "Diametro X [mm]":"Diametro Y [mm]"].boxplot(return_type='axes')
Out[9]:
Mostramos la representación gráfica de la media de las muestras
In [10]:
pd.rolling_mean(datos[columns], 50).plot(subplots=True, figsize=(12,12))
Out[10]:
Comparativa de Diametro X frente a Diametro Y para ver el ratio del filamento
In [11]:
plt.scatter(x=datos['Diametro X [mm]'], y=datos['Diametro Y [mm]'], marker='.')
Out[11]:
In [12]:
datos_filtrados = datos[(datos['Diametro X [mm]'] >= 0.9) & (datos['Diametro Y [mm]'] >= 0.9)]
In [13]:
plt.scatter(x=datos_filtrados['Diametro X [mm]'], y=datos_filtrados['Diametro Y [mm]'], marker='.')
Out[13]:
In [14]:
ratio = datos_filtrados['Diametro X [mm]']/datos_filtrados['Diametro Y [mm]']
ratio.describe()
Out[14]:
In [15]:
rolling_mean = pd.rolling_mean(ratio, 50)
rolling_std = pd.rolling_std(ratio, 50)
rolling_mean.plot(figsize=(12,6))
# plt.fill_between(ratio, y1=rolling_mean+rolling_std, y2=rolling_mean-rolling_std, alpha=0.5)
ratio.plot(figsize=(12,6), alpha=0.6, ylim=(0.5,1.5))
Out[15]:
Calculamos el número de veces que traspasamos unos límites de calidad. $Th^+ = 1.85$ and $Th^- = 1.65$
In [31]:
Th_u = 1.85
Th_d = 1.65
In [32]:
data_violations = datos[(datos['Diametro X [mm]'] > Th_u) | (datos['Diametro X [mm]'] < Th_d) |
(datos['Diametro Y [mm]'] > Th_u) | (datos['Diametro Y [mm]'] < Th_d)]
In [33]:
data_violations.describe()
Out[33]:
In [34]:
data_violations.plot(subplots=True, figsize=(12,12))
Out[34]:
In [ ]: