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

时间:2015-04-10 13:57:40

标签: r plot 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

这段代码给了我想要的东西,但没有传说:我希望有一些东西可以表示红线是什么意思,蓝色代表什么意思。

我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

一种方法是将两个系列组合成一个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"))

enter image description here


数据:

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