8
votes

Ajout d'informations récapitulatives à une parcelle de densité créée avec GGPLOT

J'ai une parcelle de densité et j'aimerais ajouter des informations sommaires telles que placer une ligne à la médiane et ombrager les intervalles crédibles de 90% (5ème et 95e quantiles). Y a-t-il un moyen de le faire dans ggplot?

C'est le type de parcelle que je voudrais résumer:

Je peux comprendre comment dessiner une ligne de la densité Y = 0 à Y = (médiane (x)), mais n'est pas clair pour moi si je peux ombrager l'intrigue avec un CI de 90%. Alternativement, je pourrais ajouter un boxplot horizontal au-dessus de la parcelle de densité, mais il n'est pas clair comment faire pivoter le boxplot par lui-même, sans faire tourner la parcelle de densité avec elle. xxx

text alt


0 commentaires

3 Réponses :


18
votes

Vous pouvez utiliser la fonction Geom_Area (). Premièrement, rendez la densité explicite à l'aide de la fonction de densité ().

x <- as.vector(rnorm(10000))
d <- as.data.frame(x=x)
library(ggplot2)
p <- ggplot(data = d) + theme_bw() + 
  geom_density(aes(x=x, y = ..density..), color = 'black')
# new code is below
q5 <- quantile(x,.05)
q95 <- quantile(x,.95)
medx <- median(x)
x.dens <- density(x)
df.dens <- data.frame(x = x.dens$x, y = x.dens$y)
p + geom_area(data = subset(df.dens, x >= q5 & x <= q95), 
              aes(x=x,y=y), fill = 'blue') +
    geom_vline(xintercept = medx)


6 commentaires

@pchalansani merci de me montrer ceci. C'est exactement ce que j'espérais faire ... Maintenant, j'ai juste besoin d'obtenir la ligne médiane là-bas. J'essaie d'utiliser Geom_Vline mais cela ne semble pas fonctionner.


@David je l'ai mis à jour avec la ligne médiane, je ne sais pas pourquoi Geom_Vline ne fonctionnait pas pour vous


@PCHALANANANI Merci de m'aider à avancer avec cela. à l'air cool.


@PCHALANANSANI Merci pour la mise à jour, mais j'ai la peine que Geom_Vline place la ligne à X = 0 au lieu de la médiane. Si vous transformez X, x <- x + 10 , vous verrez que la densité se déplace mais la ligne ne ...


@David J'ai regardé la page d'aide Geom_Vline, et il semble que vous ayez besoin d'utiliser xintercept ... cela fonctionne, j'ai corrigé le code ... HAD.CO.NZ/GGPLOT2/GEOM_VLINE.HTML


@pchalansani merci! J'ai mal interprété cela et pensé que cela a dit «interception»



3
votes

Ceci (aussi) la ligne verticale à la médiane: xxx


0 commentaires

6
votes

Je voulais ajouter à la réponse de @prasad Chalasani pour ceux qui comme moi qui sont venus à ajouter les 3 zones STD. 1 STD est la teinte la plus sombre, 2 std est la nuance du milieu et 3 std est la teinte la plus légère. La moyenne est la ligne noire et la médiane est la ligne blanche. xxx

 Entrez la description de l'image ici


0 commentaires