# -*- coding: utf-8 -*-
"""
Created on Fri Oct  3 12:31:11 2025

@author: Moritz Romeike
"""

# ------------------------------------------------------------------------
# Programmcode 11 (Python): Boxplot für die einzelnen Dioden 01 bis 08 (simuliert)
# ------------------------------------------------------------------------
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# Seed für Reproduzierbarkeit
np.random.seed(123)

# Simulation der Produktionsdaten
dioden_typen = ["Diode 01","Diode 02","Diode 03","Diode 04",
                "Diode 05","Diode 06","Diode 07","Diode 08"]

produktion = np.concatenate([
    np.random.normal(loc=50000, scale=2000, size=50),  # Diode 01
    np.random.normal(loc=42000, scale=1800, size=50),  # Diode 02
    np.random.normal(loc=39000, scale=1700, size=50),  # Diode 03
    np.random.normal(loc=37000, scale=1600, size=50),  # Diode 04
    np.random.normal(loc=35000, scale=1500, size=50),  # Diode 05
    np.random.normal(loc=31000, scale=1400, size=50),  # Diode 06
    np.random.normal(loc=29000, scale=1300, size=50),  # Diode 07
    np.random.normal(loc=25000, scale=1200, size=50)   # Diode 08
])

dioden_labels = np.repeat(dioden_typen, 50)

# DataFrame erstellen
dioden_data = pd.DataFrame({
    "DiodenTyp": dioden_labels,
    "Produktion": produktion
})

# Boxplot erzeugen
plt.figure(figsize=(10,6))
dioden_data.boxplot(column="Produktion", by="DiodenTyp", grid=False,
                    patch_artist=True, boxprops=dict(facecolor="lightblue", color="black"),
                    medianprops=dict(color="red"),
                    whiskerprops=dict(color="black"),
                    capprops=dict(color="black"))

plt.title("Boxplot der simulierten Power-Diodenproduktion")
plt.suptitle("")  # entfernt den zusätzlichen Titel von pandas boxplot
plt.xlabel("Diodentyp")
plt.ylabel("Anzahl produzierter Dioden")
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
# ------------------------------------------------------------------------
