如何在ggplot2中为同一美学设置多个图例?

时间:2013-07-14 18:10:17

标签: r plot ggplot2

我正在绘制ggplot2中多个数据帧的数据,如下所示:

# subset of iris data
vdf = iris[which(iris$Species == "virginica"),]
# plot from iris and from vdf
ggplot(iris) + 
   geom_line(aes(x=Sepal.Width, y=Sepal.Length, colour=Species)) + 
   geom_line(aes(x=Sepal.Width, y=Sepal.Length), colour="gray", size=2,
             data=vdf)

colour的图例仅包含来自iris的条目,而不包括来自vdf的条目。如何将ggplot2 agg设为data=vdf的图例,在这种情况下,iris的图例下方的灰色线会是灰线?感谢。

1 个答案:

答案 0 :(得分:7)

您应将颜色设置为aes以在图例中显示。

# subset of iris data
vdf = iris[which(iris$Species == "virginica"),]
# plot from iris and from vdf
library(ggplot2)
ggplot(iris) + geom_line(aes(x=Sepal.Width, y=Sepal.Length, colour=Species)) +
  geom_line(aes(x=Sepal.Width, y=Sepal.Length, colour="gray"), 
            size=2, data=vdf)

enter image description here

编辑我认为你不能为同一个人提供多个传说。这里有一个解决方法:

library(ggplot2)
ggplot(iris) + 
  geom_line(aes(x=Sepal.Width, y=Sepal.Length, colour=Species)) +
  geom_line(aes(x=Sepal.Width, y=Sepal.Length,size=2), colour="gray",  data=vdf) +
   guides(size = guide_legend(title='vdf color'))

enter image description here