Como ya se ha visto, para poder trabajar con gráficas y con arreglos se requiere el pylab.
Para poder realizar la tabla, con todo y tabulaciones y lineas, importe tabulate, para poder borrar la pantalla y se visualizara mejor la tabla, después del ingreso de datos, importe os.
El tabulate se descarga directamente de la página de python, y en el cmd se pone pip install tabulate.
El tabulate se descarga directamente de la página de python, y en el cmd se pone pip install tabulate.
Cabe destacar que para este tipo de gráficas, que en especifico son de control, muy usadas para verificar calidad, ya hay datos fijos como coeficientes, que se consiguen según el subgrupo manejado, aquí se manejarán subgrupos de 4, se puede ver en la imagen a continuación:
La tabla con la que se probaron los cálculos fue la siguiente:
Las formulas que se requieren son las siguientes:
- CÓDIGO:
from tabulate import *
import os
plt.ioff()
indice=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
A2=0.729
D3=0
D4=2.282
print("""\t\tDe acuerdo con la investigación realizada respecto de datos\n
que involucran revision de calidad, dependiendo de los subgrupos manejados,\n
que en este caso son 4 subgrupos, hay una tabla de los coeficientes de A2, D3, D4,\n
por lo que ya son valores fijos, los cuales son:\n
A2=""",A2,
"""\t\tD3=""",D3,
"""\t\tD4=""",D4)
print("""\nNOTA: cuando termine de ingresar los datos se limpiara pantalla y solo se vera la tabla
\nde contenido, con los datos ordenados de menor a mayor para mejor manejo para los calculos
\nrequeridos\n""")
print()
#OBTENCION DE DATOS
f1=[]
f2=[]
f3=[]
f4=[]
f5=[]
f6=[]
f7=[]
f8=[]
f9=[]
f10=[]
f11=[]
f12=[]
f13=[]
f14=[]
f15=[]
for fil in range(15):
for col in range(4):
print("Ingrese datos para la muestra %s"%str(fil+1))
z=int(input())
if(fil+1==1):
f1.append(z)
f1.sort()
elif(fil+1==2):
f2.append(z)
f2.sort()
elif(fil+1==3):
f3.append(z)
f3.sort()
elif(fil+1==4):
f4.append(z)
f4.sort()
elif(fil+1==5):
f5.append(z)
f5.sort()
elif(fil+1==6):
f6.append(z)
f6.sort()
elif(fil+1==7):
f7.append(z)
f7.sort()
elif(fil+1==8):
f8.append(z)
f8.sort()
elif(fil+1==9):
f9.append(z)
f9.sort()
elif(fil+1==10):
f10.append(z)
f10.sort()
elif(fil+1==11):
f11.append(z)
f11.sort()
elif(fil+1==12):
f12.append(z)
f12.sort()
elif(fil+1==13):
f13.append(z)
f13.sort()
elif(fil+1==14):
f14.append(z)
f14.sort()
elif(fil+1==15):
f15.append(z)
f15.sort()
print()
#LIMPIO PANTALLA
os.system('cls')
#LAS LISTAS SE HACEN ARREGLOS
dato1=np.array(f1)
dato2=np.array(f2)
dato3=np.array(f3)
dato4=np.array(f4)
dato5=np.array(f5)
dato6=np.array(f6)
dato7=np.array(f7)
dato8=np.array(f8)
dato9=np.array(f9)
dato10=np.array(f10)
dato11=np.array(f11)
dato12=np.array(f12)
dato13=np.array(f13)
dato14=np.array(f14)
dato15=np.array(f15)
#RANGO DE CADA FILA
rango1=dato1[-1]-dato1[0]
rango2=dato2[-1]-dato2[0]
rango3=dato3[-1]-dato3[0]
rango4=dato4[-1]-dato4[0]
rango5=dato5[-1]-dato5[0]
rango6=dato6[-1]-dato6[0]
rango7=dato7[-1]-dato7[0]
rango8=dato8[-1]-dato8[0]
rango9=dato9[-1]-dato9[0]
rango10=dato10[-1]-dato10[0]
rango11=dato11[-1]-dato11[0]
rango12=dato12[-1]-dato12[0]
rango13=dato13[-1]-dato13[0]
rango14=dato14[-1]-dato14[0]
rango15=dato15[-1]-dato15[0]
#PROMEDIO DE CADA FILA
prom1=dato1.mean()
prom2=dato2.mean()
prom3=dato3.mean()
prom4=dato4.mean()
prom5=dato5.mean()
prom6=dato6.mean()
prom7=dato7.mean()
prom8=dato8.mean()
prom9=dato9.mean()
prom10=dato10.mean()
prom11=dato11.mean()
prom12=dato12.mean()
prom13=dato13.mean()
prom14=dato14.mean()
prom15=dato15.mean()
#IMPRIMIR TABLA
dicc={'c1':[f1[0],f2[0],f3[0],f4[0],f5[0],f6[0],f7[0],f8[0],f9[0],f10[0],f11[0],f12[0],f13[0],f14[0],f15[0]],
'c2':[f1[1],f2[1],f3[1],f4[1],f5[1],f6[1],f7[1],f8[1],f9[1],f10[1],f11[1],f12[1],f13[1],f14[1],f15[1]],
'c3':[f1[2],f2[2],f3[2],f4[2],f5[2],f6[2],f7[2],f8[2],f9[2],f10[2],f11[2],f12[2],f13[2],f14[2],f15[2]],
'c4':[f1[3],f2[3],f3[3],f4[3],f5[3],f6[3],f7[3],f8[3],f9[3],f10[3],f11[3],f12[3],f13[3],f14[3],f15[3]],
'c5':[prom1,prom2,prom3,prom4,prom5,prom6,prom7,prom8,prom9,prom10,prom11,prom12,prom13,prom14,prom15],
'c6':[rango1,rango2,rango3,rango4,rango5,rango6,rango7,rango8,rango9,rango10,rango11,rango12,rango13,rango14,rango15]}
print(tabulate(dicc, headers=["No. Muestra", "Lect en OHMS 1","Lect en OHMS 2","Lect en OHMS 3","Lect en OHMS 4","PROM","RANG"],
showindex=indice,tablefmt='fancy_grid'))
#PROMEDIO DE PROMEDIOS Y RANGOS
promgeneral=(prom1+prom2+prom3+prom4+prom5+prom6+prom7+prom8+prom9+prom10+prom11+prom12+prom13+prom14+prom15)/15 #999.6
promrangog=(rango1+rango2+rango3+rango4+rango5+rango6+rango7+rango8+rango9+rango10+rango11+rango12+rango13+rango14+rango15)/15 #25,2
#FORMULAS
LCIX=promgeneral-(A2*promrangog) #981.2
LCIR=D3*promrangog #0
LCSX=promgeneral+(A2*promrangog) #1018
LCSR=D4*promrangog #57.5
#IMPRIMIR MINI TABLA DE ABAJO
dicc2={'M1':['PROM','LCI','LCS'],'M2':[[promgeneral,promrangog],[LCIX,LCIR],[LCSX,LCSR]],}
print(tabulate(dicc2, tablefmt='simple'))
#LCIX --> 981.2
y1=[]
y1.append(LCIX)
y1=(y1) *15
y1=np.array(y1)
#LCSX --> 1018
y2=[]
y2.append(LCSX)
y2=(y2) *15
y2=np.array(y2)
#LCIR --> 0
y3=[]
y3.append(LCIR)
y3=(y3) *15
y3=np.array(y3)
#LCSR --> 57.5
y4=[]
y4.append(LCSR)
y4=(y4) *15
y4=np.array(y4)
#PARA GRAFICAR PROMEDIOS IND.
L=[]
L.append(prom1)
L.append(prom2)
L.append(prom3)
L.append(prom4)
L.append(prom5)
L.append(prom6)
L.append(prom7)
L.append(prom8)
L.append(prom9)
L.append(prom10)
L.append(prom11)
L.append(prom12)
L.append(prom13)
L.append(prom14)
L.append(prom15)
L=np.array(L)
#PARA GRAFICAR PROMEDIO GENERAL
y8=[]
y8.append(promgeneral)
y8=(y8) *15
y8=np.array(y8)
#PARA GRAFICAR RANGO GENERAL
y9=[]
y9.append(promrangog)
y9=(y9) *15
y9=np.array(y9)
#PARA GRAFICAR RANGOS INDIVIDUALES
rind=[]
rind.append(rango1)
rind.append(rango2)
rind.append(rango3)
rind.append(rango4)
rind.append(rango5)
rind.append(rango6)
rind.append(rango7)
rind.append(rango8)
rind.append(rango9)
rind.append(rango10)
rind.append(rango11)
rind.append(rango12)
rind.append(rango13)
rind.append(rango14)
rind.append(rango15)
rind=np.array(rind)
plt.subplot(1,2,1)
#PARTE DE LAS X
plt.plot(y1, label="LCI", marker='^', linestyle=':', color='b')
plt.plot(y2, label="LCS", marker='p', linestyle=':', color='g')
plt.plot(y8, label="X", marker='x', linestyle='-', color='r')
plt.plot(L, label="PROM", marker='o', linestyle='-', color='c')
plt.legend(loc="upper right")
plt.title("GRAFICA PARA LOS PROMEDIOS")
plt.xlabel("Muestras\n(la muestra 0 representa a la muestra 1 y asi sucesivamente)")
plt.ylabel("Lecturas")
plt.grid(True)
plt.subplot(1,2,2)
#PARTE DE LAS R
plt.plot(y3, label="LCI", marker='h', linestyle='--', color='m')
plt.plot(y4, label="LCS", marker='+', linestyle='--', color='y')
plt.plot(y9, label="X", marker='*', linestyle='-', color='k')
plt.plot(rind, label="PROM", marker='D', linestyle='-', color='b')
plt.title("GRAFICA PARA LOS RANGOS")
plt.xlabel("Muestras\n(la muestra 0 representa a la muestra 1 y asi sucesivamente)")
plt.ylabel("Rangos")
plt.legend(loc="upper right")
plt.grid(True)
plt.show()
plt.ion()
- Ejecución de ingresos de datos:
- Visualización de la Tabla de contenido:
No hay comentarios:
Publicar un comentario