我正在尝试制作一个图,覆盖一堆模拟密度图,这些图是一种具有低 alpha 的颜色和一个新颜色的具有高 alpha 的经验密度图。这会产生一个看起来像我想要的图。
library(ggplot2)
model <- c(1:100)
values <- rnbinom(10000, 1, .4)
df = data.frame(model, values)
empirical_data <- rnbinom(1000, 1, .3)
ggplot() +
geom_density(aes(x=empirical_data), color='orange') +
geom_line(stat='density',
data = df,
aes(x=values,
group = model),
color='blue',
alpha = .05) +
xlab("Value")
但是,它没有图例,我不知道如何添加图例来区分来自 df
的图和来自 empirical_data
的图。
我开始走的另一条路是将它们全部放在一个数据框中,但我不知道如何更改其中一个密度图的颜色和 Alpha。
最佳答案
将 color = ...
移动到 aes
中,您可以调用 scale_color_manual
并将它们移动到 aes
并使您传递的值为绑定(bind)着色。然后,您可以将其更改为您想要的任何颜色,因为实际颜色是在 scale_color_manual
中确定的。
ggplot() +
geom_density(aes(x=empirical_data, color='a')) +
geom_line(stat='density',
data = df,
aes(x=values,
group = model,
color='b'),
alpha = .05) +
scale_color_manual(name = 'data source',
values =c('b'='blue','a'='orange'),
labels = c('df','empirical_data')) +
xlab("Value")
关于r - ggplot 中重叠图的图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50159434/