使用 ggplot2 绘制两条密度曲线的线图例

Plotting line legend for two density curves with ggplot2

这是我的问题,我想在同一个图上用 R 显示两条密度曲线,并带有线条图例。

到目前为止,我确实设法在同一个图上显示了 2 条密度曲线

require(ggplot2)
a = rnorm(1000, 20, 2)
b = rnorm(3000, 25, 2)

p = ggplot()
p = p + geom_density(col="red", aes(x=a))
p = p + geom_density(col="blue", aes(x=b))
p

这段代码给出了我想要的,但没有图例:我想要一些东西来指示红线和蓝线的含义。

我该怎么做?

一种方法是将两个系列组合成一个data.frame(可以内联完成,如下所示),添加一个将在图例中使用的列:

p <- ggplot(
  rbind(
    data.frame(x=a,type="a"),
    data.frame(x=b,type="b")),
  aes(x=x,color=type))+
  geom_density()+
  scale_color_manual(
    values = c(
      "a" = "red",
      "b" = "blue"))


数据:

require(ggplot2)
a = rnorm(1000, 20, 2)
b = rnorm(3000, 25, 2)