Manchmal muss man ein Histogramm in R erstellen. Dies gilt zum Beispiel um eine Maschinenfähigkeit oder Prozessfähigkeit zu berechnen und visuell zu überprüfen.
Einfach folgenden Code für die Erstellung des Histogramms in R kopieren. In dem passenden Beitrag finden Sie noch mehr Informationen zur Maschinen- und Prozessfähigkeit.
# Installieren und laden Sie ggplot2, falls noch nicht geschehen
install.packages("ggplot2")
library(ggplot2)
# Simulierte Daten
set.seed(123) # Für Reproduzierbarkeit
data <- rnorm(1000, mean=50, sd=3) # 1000 Datenpunkte mit Mittelwert 50 und Standardabweichung 3
# Spezifikationsgrenzen und Prozessmittelwert
USL <- 58
LSL <- 42
mean_data <- mean(data)
# Cpk berechnen
cpk_lower <- (mean_data - LSL) / (3*sd(data))
cpk_upper <- (USL - mean_data) / (3*sd(data))
cpk <- min(cpk_lower, cpk_upper)
# Höchste Dichte berechnen
densities <- density(data)$y
max_density <- max(densities)
# Diagramm zeichnen
ggplot(data.frame(data), aes(x=data)) +
geom_histogram(aes(y=..density..), bins=30, fill="blue", alpha=0.7) +
geom_vline(aes(xintercept=mean_data), color="green", linetype="dashed", size=1) +
geom_segment(aes(x=LSL, y=0, xend=LSL, yend=max_density*0.8), color="red", linetype="dashed", size=1) +
# Verkürzte Linie für LSL
geom_segment(aes(x=USL, y=0, xend=USL, yend=max_density*0.8), color="red", linetype="dashed", size=1) +
# Verkürzte Linie für USL
stat_function(fun=dnorm, args=list(mean=mean_data, sd=sd(data)), color="black", size=1) +
# Normalverteilungskurve
annotate("text", x=LSL, y=max_density*0.85, label="LSL", color="red") + # Bezeichnung für LSL
annotate("text", x=USL, y=max_density*0.85, label="USL", color="red") + # Bezeichnung für USL
ggtitle(paste("Cpk-Wert:", round(cpk, 2))) +
labs(x="Messwert", y="Dichte") +
theme_minimal()