是否可以在ggplot2中为密度图添加渐变填充,以使图表中的颜色沿x轴变化?在下面的示例中,fill
参数似乎被忽略。
library(ggplot2)
ggplot(data.frame(x = rnorm(100)), aes(x = x, fill = x)) + geom_density()
答案 0 :(得分:4)
答案 1 :(得分:2)
ggridges库有您的答案。
以下是一些可重现的数据:
library(ggplot2)
library(ggridges)
input = runif(1000, 0, 1)
output = exp(input) + cos(input)^runif(1000,0,1)
现在我们需要创建一个虚拟因子,将其全部包装在数据框中,然后将虚拟变量标记为因子:
name = rep("Name", length(output))
data = data.frame(input, output, name)
data$name = as.factor(data$name)
从这里我们可以建立密度图:
ggplot(data, aes(x=output, y=name, fill=..x..))+
geom_density_ridges_gradient()+
scale_fill_gradient(low="orange", high="navy")
根据x轴值产生梯度填充密度图。当然,从这一点开始,您可以使用ggplot2库在图表上添加/减去您想要的任何内容。