2014-03-28 98 views

回答

5

我認爲你可以stat_density做到這一點,但我離開這個作爲一個練習。你也可以計算ggplot2以外的密度。

無論如何,使用geom_segmentscale_colour_gradient2這樣的:

library(ggplot2) 
DF <- data.frame(x=seq(-3, 3, 1e-2)) 
DF$y <- dnorm(DF$x) 

ggplot(DF, aes(x=x, y=y)) + 
    geom_segment(aes(xend=x, yend=0, colour=abs(x)^0.7*sign(x))) + 
    geom_line() + 
    scale_colour_gradient2(low=scales::muted("blue", l=60), 
         mid=scales::muted("green", l=60), 
         high=scales::muted("red", l=60)) 

enter image description here