2
我有一组数据,我想用ggplot2'sstat_density
来绘图。数据的范围从-1000到1000,我希望绘图的填充颜色是从蓝色(-1000)到白色(零)和红色(+1000)的渐变色。我怎么做?作为一个图片,这将是这样的:如何使用渐变颜色填充ggplot stat_density?
我有一组数据,我想用ggplot2'sstat_density
来绘图。数据的范围从-1000到1000,我希望绘图的填充颜色是从蓝色(-1000)到白色(零)和红色(+1000)的渐变色。我怎么做?作为一个图片,这将是这样的:如何使用渐变颜色填充ggplot stat_density?
我认为你可以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))