我正在尝试使用ggplot2在R中的密度图下渐变阴影。我不断得到密度图,但没有阴影。
library(quantmod)
library(ggplot2)
library(ggfortify)
getSymbols('XLE')
energy <- coredata(Delt(XLE$XLE.Adjusted, k = 1)["2018-03-08::"])
ggplot(energy, aes(energy)) +
geom_density(aes(x = energy, fill = energy))+
scale_fill_gradient2( energy ,
low = "darkred", high = "navy", mid = "orange", midpoint = 0)
这会产生一条完全没有填充的曲线。
以下是具有可重现数据的类似示例:
test.data <- data.frame(exp(runif(1000,0,1)))
ggplot(test.data, aes(test.data))+
geom_density(aes(fill = test.data)) +
scale_fill_gradient(test.data, low = "navy", high = "red")
产生
答案 0 :(得分:0)
好吧,我整个周末一直在研究这个问题,最后我想出了相对于R中x轴的密度图下阴影的答案。
让我们设置一些可重现的数据:
input = runif(1000, 0, 1)
output = exp(input) + cos(input)
然后我们需要在数据框中添加一个虚假因子&#34;名称&#34;:
name = rep("name", length(output))
data.df = data.frame(input, output, name)
data.df$name = as.factor(data.frame$name)
从这里开始,我们可以使用ggplot2和ggridges库:
library(ggplot2)
library(ggridges)
ggplot( data.df, aes(x=output, y=name, fill=..x..))+
geom_density_ridges_gradient()+
scale_fill_gradient(low="red4", high="navy")+
ylab(" ")
哪个收益率: this plot