2017-05-26 3 views
0

Je me demandais si je pouvais tracer le reflet de ma « Densité Histogramme » (c.-à-ombre [ comme indiqué dans "bleu" dans l'image ci-dessous]) dans (éventuellement) "Base" R?Traçage la réflexion (c.-à-ombre) d'un histogramme en R (code et visuel fourni)

S'il vous plaît voir mon code R ci-dessous l'image.

enter image description here

Voici mon code R:

set.seed(0) ; x = rnorm(n = 1e4) ; den = density(x) 

plot( den$x , den$y , ty = 'n' , ylim = c(-max(den$y), max(den$y)) , xlim = c(min(den$x), max(den$x))) 

b = hist(x, freq = F , ylim = c(-max(den$y), max(den$y)), main = NA ) 

polygon(c(den$x, den$x) , c(den$y, -den$y)) 

Répondre

1

Vous pouvez faire quelque chose comme celui-ci en utilisant ggplot2 en extrayant les valeurs d'un histogramme, ce qui crée des valeurs négatives et tracer sous forme de colonnes.

library(ggplot2) 
df1 <- data.frame(x = rnorm(1e4)) 
p <- ggplot(df1) + geom_histogram(aes(x = x)) 
pg <- ggplot_build(p) 
pg <- pg$data[[1]] 
pg$mirror <- -pg$count 
ggplot(pg) + geom_col(aes(x, y)) + geom_col(aes(x, mirror), fill = "blue") 

enter image description here

EDIT: et voici une solution de base de R.

h1 <- hist(rnorm(1e4)) 
h2 <- h1 
h2$counts <- -h1$counts 
plot(h1, ylim = c(-2000, 2000)) 
lines(h2, col = "blue") 

enter image description here

+0

a ajouté une solution de base R. Et oui, ajoutez simplement '+ coord_flip()' à la fin de la solution ggplot. – neilfws

+0

Si vous voulez des densités, alors vous devez faire quelque chose de similaire en utilisant 'density()'. – neilfws