【发布时间】:2018-04-06 19:24:52
【问题描述】:
我正在尝试使用 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")
产生
【问题讨论】:
-
idownvotedbecau.se/nomcve你能用你可以与我们分享的数据子集重现这个吗?
-
好的,我已经更新了原始问题以包含一个具有可重现数据的示例。
-
我不知道你的示例是如何生成图表的,因为代码有几个错误,包括没有向
geom_density提供x美学,以及向aes提供数据对象而不是列名称。我也不明白想要的结果是什么 - 你希望如何填写?fill美学对于geom_density来说是离散的。在您的原始代码中,如果您将x和fill设置为相同的连续变量fill将什么也不做,并且不清楚您期望它做什么。请看例子:ggplot2.tidyverse.org/reference/geom_density.html -
最简单的解决方案是:在密度下绘制直方图并根据x轴值对其进行着色
-
我正在尝试将曲线下的填充颜色与 x 轴的值联系起来。我希望颜色从“海军蓝”变为“深红色”,而不是一种填充颜色。