r - 在 R 中叠加 10 个密度图,颜色与重叠图的数量成正比

标签 r ggplot2 color-scheme kernel-density

我有一个包含 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但我不明白自己解决这个问题。

最佳答案

这可以通过使用 group 来完成。美学与制作 fill密度为浅灰色阴影,如 gray10gray20 :

ggplot(MyData, aes(x=value, group=variable)) + geom_density(alpha = 0.5, fill="gray20")

这会给你:

Density plot

在您的情况下,您可能想要 gray10 ,因为您有 10 个组,而不是此处绘制的 5 个组。

关于r - 在 R 中叠加 10 个密度图,颜色与重叠图的数量成正比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12944357/

相关文章:

使用 SPF-13/csapprox 的 VIM 配色方案管理

html - 从调色板设置背景后,如何使用 INLINE HTML 在深色背景上自动使文本变白

r - 编写csv文件时如何避免额外的列?

r - auto.arima() R 中的 is.constant() 函数

r - 如何将表格添加到我的 ggplot2 输出?

r - 在 ggarange 内对齐 ggplot 对象

r - geom_boxplot() : forcing an empty level to appear

javascript - 如何为网页创建配色方案生成器

color-scheme - 如何创建 Kakoune 配色方案?

r - 如何根据某些字符串值重命名列中的某些观察值?