2017-05-26 4 views
0

ich mich gefragt, ob ich die Spiegelbild meiner „Dichte-Histogramm“ (dh Schatten zeichnen konnte [ wie in "blau" in der unteren Abbildung gezeigt]) in (möglicherweise) "Base" R?Trägt man die Reflexion (dh Schatten) eines Histogramms in R (Code und visuelle zur Verfügung gestellt)

Siehe meinen R-Code unter dem Bild.

enter image description here

Hier ist mein R-Code:

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)) 

Antwort

1

Sie etwas tun kann wie dies mit ggplot2, indem die Werte aus einem Histogramm zu extrahieren, wodurch negative Werte und als Spalten Plotten.

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: und hier ist eine Basis R Lösung.

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

Added eine Lösung Basis R. Und ja, fügen Sie einfach '+ coord_flip()' am Ende der ggplot-Lösung hinzu. – neilfws

+0

Wenn Sie Dichten wollen, dann müssen Sie etwas Ähnliches mit 'Density()' machen. – neilfws

Verwandte Themen