ggplot2中调整plot.margin后如何将图例定位在底部?

问题描述 投票:0回答:1

在 ggplot2 中,我想增加底部绘图边距(使用

plot.margin
theme()
参数)并将图例放置在绘图窗口的底部。

考虑以下示例代码:

library("ggplot2")

d <- data.frame(x = c(8,6,5,1,8,9,6,4),
                y = c(6,5,4,3,7,1,6,4),
                v = rep(c("a","b"), each = 4))
p <- ggplot(d, aes(x, y, colour = v)) + geom_point()
p + 
  theme(plot.margin = unit(c(1,1,4,1), "cm"),
        legend.position = "bottom")

产生以下输出:

如您所见,上图具有较大的底部边距(由原始代码中的

plot.margin
参数指定)。但尽管 legend.position 参数设置为
"bottom"
,但图例
not
位于绘图窗口的底部。看起来在图例放在底部后,附加的底部边距空间已添加到图中...我想以相反的方式进行操作(即增加底部边距,然后然后将图例放在底部绘图窗口)。

在 ggplot2 中,我们如何将图例放置在底部边距增加的绘图窗口的底部?

非常感谢您的帮助!

r ggplot2 legend
1个回答
0
投票

设置

legend.position = "bottom"
在绘图面板的底部添加图例,而不是在整个绘图图像的底部。听起来您想增加 x 轴和图例之间的空间。一种选择是向 x 轴标题文本添加边距:

p + 
  theme(plot.margin = margin(1, 1, 1, 1, unit = "cm"),
        axis.title.x = element_text(margin = margin(b = 3, unit = "cm")),
        legend.position = "bottom")

  • 更新为使用较新的
    margin
    语法而不是
    unit
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.