r - ggplot 中重叠图的图例

标签 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。

最佳答案

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/

相关文章:

r - 在 ggplot2 中指定图例中的形状

r - 按 y 轴上的位置顺序连接 ggplot 中的点

r - 在R中使用ggsave时如何删除垂直白线?

r - 在ggplot图例中更改线型

r - ARIMA 的 R 和 Stata 之间的主要差异

R - 通过管道连接脚本

r - 使用 dplyr 按组计算比率

r - 面积图显示较大的值低于较小的值

R:在合并之前查找不匹配的列名

r - ggplot 中 geom_point (scale_colour_manual) 的填充和边框颜色