最佳答案
考虑下面的情节:
library(ggplot2)
p <- ggplot(diamonds,
aes(x = carat, fill = cut)) +
geom_density(position = "stack") +
facet_wrap(~ color)
facet_wrap
函数将一系列面板封装成一个大致呈矩形的 nrow
行和 ncol
列的显示器。然而,根据数据的不同,面板的实际数量通常比 nrow * ncol
少几个面板,这在绘图中留下了大量浪费的空间。
如果情节包括图例,情况就会恶化,因为现在由于图例,我们有更多的浪费空间,无论是在右边(默认的图例位置) ,或其他三个方向之一。
为了节省空间,我想把传奇转移到由未填充的方面创造的空间。
以下是一个节省空间的措施,但是图例被固定在情节区域的一个角落,一边可能有很多空间,创造了一个不平衡的外观:
p +
theme(legend.position = c(1, 0),
legend.justification = c(1, 0))
通过手动调整 legend.position
/legend.justification
值将图例向空白区域中心移动是一个反复试验的问题,如果有许多方面的图要处理,则难以缩放。
总之,我想要一种方法:
对我来说,这是一个反复出现的用例,我已经决定将它和我的工作解决方案一起发布在这里,以防其他人发现它有用。我在 Stack Overflow 的其他地方没有看到这种场景 问[回答]。如果有人留言,请留下评论,我很乐意回答这个问题,或者把这个标记为副本,视情况而定。