Normale Kurve mit ggplot2 über Histogramm zeichnen: Code erzeugt gerade Linie bei 0

dieses Forum hat mir bereits bei der Erstellung des Codes sehr geholfen. Ich hatte erwartet, dass er ein Histogramm einer bestimmten Variablen zurückgibt, das mit der empirischen Normalkurve überlagert ist. Ich habe ggplot2 und stat_function benutzt, um den Code zu schreiben. Leider hat der Code ein Diagramm mit dem richtigen Histogramm erstellt, aber die normale Kurve ist eine gerade Linie bei Null (rote Linie im Diagramm, das mit dem folgenden Code erstellt wurde).

Für dieses minimale Beispiel habe ich den mtcars-Datensatz verwendet - das gleiche Verhalten von ggplot und stat_function wird bei meinem ursprünglichen Datensatz beobachtet.

Dies ist der Code, der geschrieben und verwendet wird:

library(ggplot2)
mtcars
hist_staff <- ggplot(mtcars, aes(x = mtcars$mpg)) + 
  geom_histogram(binwidth = 2, colour = "black", aes(fill = ..count..)) +
  scale_fill_gradient("Count", low = "#DCDCDC", high = "#7C7C7C") +
  stat_function(fun = dnorm, colour = "red")
print(hist_staff)

Ich habe auch versucht, dnorm anzugeben:

stat_function(fun = dnorm(mtcars$mpg, mean = mean(mtcars$mpg), sd = sd(mtcars$mpg))

Das hat auch nicht geklappt - es wurde eine Fehlermeldung ausgegeben, die besagt, dass die Argumente nicht numerisch sind.

Ich hoffe ihr könnt mir helfen! Vielen Dank im Voraus

Best, Jannik

Antworten auf die Frage(2)

Ihre Antwort auf die Frage