繁体   English   中英

R中密度图下的渐变底纹(ggplot2)

[英]Gradient Shading Under Density Plot in R (ggplot2)

我正在尝试使用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")

产生

在此处输入图片说明

好的,我花了一个周末研究这个问题,最后我想出了在相对于R的x轴的密度图中绘制阴影的答案。

让我们设置一些可重复的数据:

input = runif(1000, 0, 1)
output = exp(input) + cos(input)

然后,我们需要在数据帧中添加一个虚假因子“名称”:

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(" ")

哪个产生: 这个情节

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM