import matplotlib.pyplot as plt

# Crear la figura y el eje
fig, ax = plt.subplots(figsize=(14, 10))

# Dibujar la espina central
ax.plot([0.2, 0.8], [0.5, 0.5], color="black")

# Añadir las categorías principales
categories = ['Materiales', 'Métodos', 'Mano de Obra', 'Maquinaria', 'Entorno', 'Medición']
positions = [0.3, 0.4, 0.5, 0.6, 0.7, 0.8]
for pos, cat in zip(positions, categories):
    ax.text(pos, 0.55, cat, ha="center", va="bottom", fontsize=12, bbox=dict(facecolor='white', edgecolor='black'))

# Añadir las causas potenciales en detalle
causes = {
    'Materiales': ['Calidad de los componentes\n- Componentes defectuosos\n- Variabilidad en la calidad',
                  'Proveedores\n- Falta de consistencia\n- Selección inadecuada',
                  'Almacenamiento\n- Condiciones inadecuadas\n- Gestión ineficiente'],
    'Métodos': ['Procedimientos de ensamblaje\n- Mal documentados\n- Falta de estandarización',
                'Control de calidad\n- Inspección insuficiente\n- Falta de pruebas intermedias',
                'Procesos de prueba\n- Pruebas finales inadecuadas\n- Falta de simulaciones'],
    'Mano de Obra': ['Capacitación\n- Formación insuficiente\n- Falta de actualización',
                    'Turnover\n- Alta rotación\n- Empleados nuevos sin experiencia',
                    'Motivación\n- Baja moral\n- Incentivos inadecuados'],
    'Maquinaria': ['Mantenimiento\n- Falta de mantenimiento preventivo\n- Respuesta lenta a fallos',
                  'Equipamiento\n- Uso de maquinaria obsoleta\n- Máquinas defectuosas',
                  'Calibración\n- Equipos mal calibrados\n- Falta de recalibración'],
    'Entorno': ['Condiciones ambientales\n- Temperatura y humedad inadecuadas\n- Condiciones de limpieza deficientes',
               'Espacio de trabajo\n- Diseño ineficiente\n- Iluminación y ergonomía inadecuadas'],
    'Medición': ['Instrumentos de medición\n- Equipos defectuosos\n- Falta de herramientas precisas',
                'Frecuencia de inspección\n- Inspecciones insuficientes\n- Falta de auditorías regulares',
                'Procedimientos de inspección\n- Inconsistentes\n- Falta de personal especializado']
}

# Posiciones y offsets para las causas
offsets = [0.45, 0.35, 0.25]
for cat, pos in zip(categories, positions):
    for i, cause in enumerate(causes[cat]):
        if pos < 0.5:
            ax.text(pos - 0.15, offsets[i], cause, ha="right", va="center", fontsize=10, bbox=dict(facecolor='white', edgecolor='black'))
            ax.plot([pos - 0.05, pos], [0.5, offsets[i]], color="black")
        else:
            ax.text(pos + 0.15, offsets[i], cause, ha="left", va="center", fontsize=10, bbox=dict(facecolor='white', edgecolor='black'))
            ax.plot([pos, pos + 0.05], [0.5, offsets[i]], color="black")

# Configurar el gráfico
ax.axis("off")
plt.title("Diagrama de Causa-Efecto: Defectos en Teléfonos Inteligentes")
plt.show()

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: