2014-03-28 93 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