Position legend in first plot of facet

亡梦爱人 提交于 2019-11-29 02:17:56

问题


I would like to put my plot legend inside the plot, inside the first plot of a facet.

Here is some example code:

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)

Here is the resulting plot:

And here is roughly how I would like it to look:

Thanks for any help you can provide!


回答1:


Assuming your plot is saved as 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)
)

If you want the legend background partially transparent, change the fill to, e.g., "#ffffffaa".




回答2:


Or, building on @Richie Cotton's answer, since opts is deprecated in ggplot2 now (still assuming your plot is defined as p)

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


来源:https://stackoverflow.com/questions/7270900/position-legend-in-first-plot-of-facet

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!