# -*- coding: utf-8 -*-
"""
Created on Fri Oct  3 12:35:34 2025

@author: Moritz Romeike
"""

# ------------------------------------------------------------------------
# Programmcode 14 (Python): Dichtediagramme der simulierten Produktionsdaten
# ------------------------------------------------------------------------
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.stats import gaussian_kde

# Für Reproduzierbarkeit
np.random.seed(123)

# Simulierte Daten (wie in R)
diodentypen = ["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
])

labels = np.repeat(diodentypen, 50)
df = pd.DataFrame({"DiodenTyp": labels, "Produktion": produktion})

# Farben (8 verschiedene, ähnlich R::Dark2 Palette)
colors = plt.cm.tab10.colors[:8]

plt.figure(figsize=(10,6))

for i, d in enumerate(diodentypen):
    vals = df.loc[df["DiodenTyp"]==d, "Produktion"].values
    kde = gaussian_kde(vals)
    x_grid = np.linspace(vals.min()-2000, vals.max()+2000, 300)
    plt.plot(x_grid, kde(x_grid), color=colors[i], label=d)
    plt.fill_between(x_grid, kde(x_grid), alpha=0.3, color=colors[i])

plt.title("Density Plot der produzierten Power-Dioden")
plt.xlabel("Anzahl produzierter Dioden")
plt.ylabel("Dichte")
plt.legend(title="Dioden-Typ")
plt.tight_layout()
plt.show()
# ------------------------------------------------------------------------
