Traçage de la courbe normale au cours de l'histogramme à l'aide de ggplot2: Code de produit en ligne droite à 0
ce forum déjà m'a beaucoup aidé pour la production, le code, je m'attendais à un retour de l'histogramme d'une variable spécifique superposé avec ses empirique de la courbe normale. J'ai utilisé ggplot2 et stat_function pour écrire le code.
Malheureusement, le code produit d'un terrain avec la bonne histogramme, mais la courbe normale est une ligne droite à zéro (ligne rouge dans le carré produite par le code suivant).
Pour ce minime exemple, j'ai utilisé le mtcars dataset - le même comportement de ggplot et stat_function est observée avec mon jeu de données d'origine.
C'est que le code est écrit et utilisé:
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)
J'ai aussi essayé de préciser les dnorm:
stat_function(fun = dnorm(mtcars$mpg, mean = mean(mtcars$mpg), sd = sd(mtcars$mpg))
Qui n'a pas fonctionné non plus - un message d'erreur renvoyé indiquant que les arguments ne sont pas numériques.
J'espère que vous pourrez m'aider! Merci beaucoup à l'avance!
Mieux, Jannik
stat_function(fun = dnorm, arg = list(mean = mean(mtcars$mpg), sd = sd(mtcars$mpg)))
stat_function(fun = dnorm, args = liste(moyenne = mean(mtcars$mpg), sd = sd(mtcars$mpg)))
les commentaires appartiennent au, bien, Commentaires et (b) de recherche "r paramètre de la fonction reconnaissance partielle" avant de décider de le faire, a déclaré en commentant code de travail.
Ce lien donne la meilleure solution. stackoverflow.com/questions/5688082/...
OriginalL'auteur Jannik | 2015-03-21
Vous devez vous connecter pour publier un commentaire.
Votre courbe et les histogrammes sont sur différentes échelles y et vous ne cochez pas la page d'aide sur
stat_function
, sinon vous auriez ai mis les arguments dans unlist
comme il le montre clairement dans l'exemple. Vous aussi vous ne faites pas laaes
droit dans votre premierggplot
appel. Sincèrement, je suggère de frapper plus de tutoriels et des livres (ou, au minimum, les pages d'aide) vs apprendre ggplot fragmentaire sur.Une fois que vous résoudre le
stat_function
arg problème et laggplot``aes
problème, vous avez besoin pour s'attaquer à l'axe y de différence d'échelle. Pour ce faire, vous aurez besoin pour passer l'axe de l'histogramme d'utiliser la densité de la sous-jacentesstat_bin
données calculées cadre:Est-il un moyen de faire ce travail lorsque la parcelle est à facettes entre de multiples facteurs?
Pour étendre pour y=0, u pouvez modifier le x-échelle pour la valeur appropriée.
gg <- gg + scale_x_continuous(limits = c(0, 40))
OriginalL'auteur hrbrmstr