Обозначение позиции в первом графике фасета
Я хотел бы поместить легенду своего сюжета в сюжет, внутри первого сюжета фасета.
Вот пример кода:
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]()
Спасибо за любую помощь, которую вы можете предоставить!
Ответы
Ответ 1
Предполагая, что ваш сюжет сохраняется как 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"
.
Ответ 2
Или, основываясь на ответе @Richie Cotton, так как opts устарел в ggplot2 сейчас (все еще предполагая, что ваш график определен как p)
p + theme(legend.position = c(0.9, 0.6)
,legend.background = element_rect(fill = "white", colour = NA))