Control Estadistico de Procesos
# Autor: Juan Alberto Falcon Quezada
# Programa: Control Estadistico de Procesos
# Descripcion: Un programa que desarrolla graficas para control estadistico
# Materia: Programacion Visual
# Fecha: 25-03-2018
#Herramientas utilizadas PyQt5, MatplotLib,
from math import sqrt
#importamos MatplotLib
from matplotlib import pyplot as plt
Muestras = int(input('Dame el numero de muestras '))
TaMues = int(input('Dame el tamaño de la muestra '))
Lecturas = []
A2_list = [1.880, 1.023, 0.729, 0.577, 0.483, 0.419, 0.373,0.377,0.308,0.285,0.266,0.249,0.235,0.223]
D3_list = [0,0,0,0,0,0.076,0.136, 0.184, 0.223, 0.256, 0.284, 0.308, 0.329, 0.348]
D4_list = [3.268, 2.574, 2.282, 2.114, 2.004, 1.924, 1.864, 1.816,1.777, 1.744, 1.717, 1.692, 1.671, 1.652]
for i in range(Muestras):
for j in range(TaMues):
Lecturas.append(int(input('Ingresa los valores: ')))
#Declaramos los valores Constantes
A2 = A2_list[TaMues-1]
D3 = D3_list[TaMues-1]
D4 = D4_list[TaMues-1]
# Buscamos el promedio de la lista
promTot = 0
PromParc = [] #Promedios parciales por # de muestra
RangParc = []
for i in Lecturas:
promTot += (i/len(Lecturas))
# Buscamos el promedio de Rango
rangTot = 0
rangAux = 0
PromFila = 0;
for i in range(0,len(Lecturas),TaMues):
LectActual = Lecturas[i:i+TaMues]
rangAux = (max(LectActual)-min(LectActual))
rangTot += round((rangAux/(len(Lecturas)/TaMues)),2)
RangParc.append(rangAux)
#Hacemos un for para recorrer la fila y obtener un promedio parcial
for j in LectActual:
PromFila += (j/TaMues)
PromParc.append(PromFila)
PromFila=0
#Obtenemos los limites inferiores y superiores de promedios y rangos
LCI_p = round(promTot - (A2)*(rangTot),2)
LCS_p = round(promTot + (A2)*(rangTot),2)
LCI_r = round((D3)*(rangTot),2)
LCS_r = round((D4)*(rangTot),2)
plt_p = plt
plt_r = plt
# Graficamos Promedios por muestra
plt_p.xlabel('Promedios Por Muestra')
plt_p.ylabel('Valor en Ohmios')
plt_p.plot(PromParc, label='Promedios')
plt_p.plot([LCI_p for x in range(len(PromParc))], label='LCI')
plt_p.plot([LCS_p for x in range(len(PromParc))], label='LSI')
plt_p.plot([promTot for x in range(len(PromParc))], label='X')
plt_p.grid(True)
plt_p.title('Promedios')
plt_p.legend()
plt_p.show()
# Graficamos Promedios por rangos
plt_r.xlabel('Rango con respecto a cada muestra')
plt_r.ylabel('Rango')
plt_r.plot(RangParc, label='Rangos')
plt_r.plot([LCI_r for x in range(len(RangParc))], label='LCI')
plt_r.plot([LCS_r for x in range(len(RangParc))], label='LSI')
plt_r.plot([rangTot for x in range(len(RangParc))], label='LRI')
plt_r.grid(True)
plt_r.title('Rangos')
plt_r.legend()
plt_r.show()
# Programa: Control Estadistico de Procesos
# Descripcion: Un programa que desarrolla graficas para control estadistico
# Materia: Programacion Visual
# Fecha: 25-03-2018
#Herramientas utilizadas PyQt5, MatplotLib,
from math import sqrt
#importamos MatplotLib
from matplotlib import pyplot as plt
Muestras = int(input('Dame el numero de muestras '))
TaMues = int(input('Dame el tamaño de la muestra '))
Lecturas = []
A2_list = [1.880, 1.023, 0.729, 0.577, 0.483, 0.419, 0.373,0.377,0.308,0.285,0.266,0.249,0.235,0.223]
D3_list = [0,0,0,0,0,0.076,0.136, 0.184, 0.223, 0.256, 0.284, 0.308, 0.329, 0.348]
D4_list = [3.268, 2.574, 2.282, 2.114, 2.004, 1.924, 1.864, 1.816,1.777, 1.744, 1.717, 1.692, 1.671, 1.652]
for i in range(Muestras):
for j in range(TaMues):
Lecturas.append(int(input('Ingresa los valores: ')))
#Declaramos los valores Constantes
A2 = A2_list[TaMues-1]
D3 = D3_list[TaMues-1]
D4 = D4_list[TaMues-1]
# Buscamos el promedio de la lista
promTot = 0
PromParc = [] #Promedios parciales por # de muestra
RangParc = []
for i in Lecturas:
promTot += (i/len(Lecturas))
# Buscamos el promedio de Rango
rangTot = 0
rangAux = 0
PromFila = 0;
for i in range(0,len(Lecturas),TaMues):
LectActual = Lecturas[i:i+TaMues]
rangAux = (max(LectActual)-min(LectActual))
rangTot += round((rangAux/(len(Lecturas)/TaMues)),2)
RangParc.append(rangAux)
#Hacemos un for para recorrer la fila y obtener un promedio parcial
for j in LectActual:
PromFila += (j/TaMues)
PromParc.append(PromFila)
PromFila=0
#Obtenemos los limites inferiores y superiores de promedios y rangos
LCI_p = round(promTot - (A2)*(rangTot),2)
LCS_p = round(promTot + (A2)*(rangTot),2)
LCI_r = round((D3)*(rangTot),2)
LCS_r = round((D4)*(rangTot),2)
plt_p = plt
plt_r = plt
# Graficamos Promedios por muestra
plt_p.xlabel('Promedios Por Muestra')
plt_p.ylabel('Valor en Ohmios')
plt_p.plot(PromParc, label='Promedios')
plt_p.plot([LCI_p for x in range(len(PromParc))], label='LCI')
plt_p.plot([LCS_p for x in range(len(PromParc))], label='LSI')
plt_p.plot([promTot for x in range(len(PromParc))], label='X')
plt_p.grid(True)
plt_p.title('Promedios')
plt_p.legend()
plt_p.show()
# Graficamos Promedios por rangos
plt_r.xlabel('Rango con respecto a cada muestra')
plt_r.ylabel('Rango')
plt_r.plot(RangParc, label='Rangos')
plt_r.plot([LCI_r for x in range(len(RangParc))], label='LCI')
plt_r.plot([LCS_r for x in range(len(RangParc))], label='LSI')
plt_r.plot([rangTot for x in range(len(RangParc))], label='LRI')
plt_r.grid(True)
plt_r.title('Rangos')
plt_r.legend()
plt_r.show()
Algunas Graficas de Ejemplo:


Comentarios
Publicar un comentario