如何使用渐变为ggplot stat_density的填充着色?

时间:2014-03-28 13:07:05

标签: r ggplot2

我想要使用ggplot2's stat_density绘制一组数据。数据范围从-1000到1000,我希望绘图用填充作为渐变着色,从蓝色(-1000)到白色(零)和红色(+1000)。我怎么做?作为图片,它将是这样的:

plot

1 个答案:

答案 0 :(得分: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