将图例放在第一个构面图中

时间:2011-09-01 13:17:55

标签: r position ggplot2 legend

我想把我的情节传奇放在情节中,在第一个方面的情节内。

以下是一些示例代码:

df=data.frame(
 x=runif(10),
 y=runif(10),
 facet=rep(c("a","b"),5),
 color=rep(c("red","blue"),5))

ggplot(data=df,aes(x=x,y=y,color=color))+
 geom_point()+
 facet_wrap(~facet,ncol=1)

以下是结果图:

plot with legend on outside

以下是我希望看到的内容:

plot with legend inside

感谢您提供的任何帮助!

2 个答案:

答案 0 :(得分:25)

假设您的情节保存为p

p + opts(
  legend.position = c(0.9, 0.6), # c(0,0) bottom left, c(1,1) top-right.
  legend.background = theme_rect(fill = "white", colour = NA)
)

如果您希望图例背景部分透明,请将fill更改为,例如"#ffffffaa"

答案 1 :(得分:13)

或者,基于@Richie Cotton的答案,因为opg现在在ggplot2中被弃用(仍假设你的情节被定义为p)

p + theme(legend.position = c(0.9, 0.6)
          ,legend.background = element_rect(fill = "white", colour = NA))