ggplot中重叠图的图例

时间:2018-05-03 16:03:50

标签: r ggplot2

我试图制作一个覆盖一堆模拟密度图的图,这些图是一种具有低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值。

1 个答案:

答案 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")