我有一个数据集,包含224900个观察值和10个变量。这些变量是不同的泰勒级数反演到原始数据值的结果。我希望将这10个变量的密度图叠加在一起,以显示泰勒级数反演对数据估计的鲁棒性水平。我不想只有10条线,而是想使用颜色来表示,使每个密度图都贡献10%的灰度。如果某些数据仅涉及其中一个图形,则应为10%灰色,两个图形将比20%更深,直到所有密度图重叠,这将是100%。
我已经使用了melt
函数将得到一个由2249000行组成的数据框。它有三列,第一列是人员ID,第二列是分组变量(variable
),第三列是每日千焦耳摄入量的值(value
)。
我已经使用以下代码在ggplot2
中叠加了密度图,但它使用不同的颜色来表示不同的分组。如何更改此代码以获得我需要的灰度调色板?我希望所有10个分组都具有相同的颜色和颜色密度;绘图的目的仅是使用灰度直观地显示密度图的重叠程度。
ggplot(Energy, aes(x=value, fill=variable)) + geom_density(alpha = 0.5)
以下是一些测试数据,供那些希望提供帮助的人使用,使用5个组而不是10个:
variable <- c(rep("A",100), rep("B",100), rep("C",100), rep("D",100), rep("E",100))
value <- c(rnorm(100,5000,200), rnorm(100,5050,210), rnorm(100,5100,215),
rnorm(100,5150,220), rnorm(100,5200,225))
MyData <- cbind.data.frame(value, variable)
ggplot(MyData, aes(x=value, fill=variable)) + geom_density(alpha = 0.5)
我认为答案可能与修改scale_colour_grey
和/或scale_manual
有关,但我自己不理解得足够多,无法解决这个问题。
fill="gray20"
更改为fill="gray10"
适用于我的 10 组“proper”数据集,现在它完美地工作了! - Michelle