Положение легенды в первом сюжете фасета

Я хотел бы поместить легенду своего сюжета внутри сюжета, внутри первого сюжета фасета.

Вот пример кода:

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)

Вот результирующий сюжет:

сюжет с легендой снаружи

И вот примерно, как я хотел бы, чтобы это выглядело:

сюжет с легендой внутри

Спасибо за любую помощь, вы можете предоставить!

2 ответа

Решение

Предполагая, что ваш график сохраняется как 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",

Или, основываясь на ответе @Richie Cotton, так как opts устарела в ggplot2 сейчас (все еще при условии, что ваш график определен как p)

p + theme(legend.position = c(0.9, 0.6)
          ,legend.background = element_rect(fill = "white", colour = NA))
Другие вопросы по тегам