我试图制作一个覆盖一堆模拟密度图的图,这些图是一种具有低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值。
答案 0 :(得分:2)
将color = ...
移至aes
,您可以调用scale_color_manual
并将其移至aes
,并将传递的值设为彩色装订。然后,您可以将其更改为您想要的任何颜色,因为在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")