我想要使用ggplot2's stat_density
绘制一组数据。数据范围从-1000到1000,我希望绘图用填充作为渐变着色,从蓝色(-1000)到白色(零)和红色(+1000)。我怎么做?作为图片,它将是这样的:
答案 0 :(得分:5)
我认为您可以使用stat_density
执行此操作,但我将此作为练习留给您。您还可以计算ggplot2之外的密度。
无论如何,请使用geom_segment
和scale_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))