将图例添加到ggplot

时间:2014-02-03 17:16:40

标签: r ggplot2

这个问题是对这篇文章的后续跟进:previous post

我有12个变量, M1,M2,...,M12 ,我为此计算某些统计信息 x < / strong>和 y

 df = data.frame(model = factor(paste("M", 1:28, sep = ""), levels=paste("M", 1:28, sep = "")), a = runif(28, 1, 1.05), b = runif(28, 1, 1.05))

 levels = seq(0.8, 1.2, 0.05)

这是情节:

 ggplot(data=df) + 
   geom_polygon(aes(x=model, y=a, group=1), color = "red", fill = NA) + 
   geom_polygon(aes(x=model, y=b, group=1), color = "blue", fill = NA) +
   coord_polar() + 
   scale_y_continuous(limits=range(levels), breaks=levels, labels=levels) +
   theme(axis.text.y = element_blank(), axis.ticks = element_blank(), axis.title.x = element_blank(), axis.title.y = element_blank())

我想在情节中添加一个图例,其中我有两条线,一条红色标记为“a”,另一条蓝色标记为“b”。

我尝试使用scale_colour_manual,如下所示:

scale_colour_manual(values = c("red", "blue"), labels = c("a", "b"))

但它似乎不起作用。任何帮助,将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:2)

library(reshape2)
df1 <- melt(df, id="model")

levels = seq(0.8, 1.2, 0.05)

ggplot(data=df1) + 
  geom_polygon(aes(x=model, y=value, group=variable, colour=variable), fill = NA) + 
  scale_colour_manual(values=c("a"="blue", "b"="red")) +
  coord_polar() + 
  scale_y_continuous(limits=range(levels), breaks=levels, labels=levels) +
  theme(axis.text.y = element_blank(), axis.ticks = element_blank(), axis.title.x = element_blank(), axis.title.y = element_blank())

enter image description here

答案 1 :(得分:0)

您可以添加以下内容从图例中删除背景:

+ theme(legend.background=element_rect(colour=NA) 

不要忘记添加最后一个右括号。