减少ggplot2图例中的间距

8
我正在尝试使用ggplot2绘制图形。问题在于我无法减少图例边框和文本之间的空白。例如: sample legend
我想要减少上方用一些卷曲线标记出来的白色空间。
我搜索了很多,但大多数地方的答案都建议减少key.height或key.width,但那不是我想要的;我对它们非常满意。我只是想摆脱上方的白色空间。

没有一个可重现的例子很难确定,但是尝试一下 theme(legend.title=element_blank()) 怎么样? - eipi10
这就是我用来移除图例标题的方法。它确实移除了图例标题,但留下了空白间隔。我想要移除这个空白间隔。 - Sonu Mishra
然后使用 legend.margin=margin(c(1,5,5,5)) 并尝试调整数值(它们的顺序是从上到下,从右到左),直到你得到自己喜欢的效果。 - eipi10
2个回答

15

您可以使用以下代码去除图例标题空间:

theme(legend.title=element_blank())

如果那不够的话,就执行以下操作:
theme(legend.title=element_blank(),
      legend.margin=margin(c(1,5,5,5)))

调整数值(它们按顺序分别表示上、右、下、左)并进行尝试,直到你得到自己喜欢的效果。


我遇到了这个错误:找不到函数“margin”。 - Sonu Mishra
1
你使用的ggplot2版本是什么?我认为你需要最新版本(2.2.0)才能使这个解决方案正常工作。如果你使用较早版本的ggplot,相当于这个解决方案的代码可能类似于 legend.margin=unit(c(1,5,5,5), "pt") 但我不确定。这可能只会更改图例面板周围的边距。 - eipi10

5

其他解决方案在我的情况下并没有起作用,因为顶部仍然有空白。

设置

theme(legend.title=element_blank(),
      legend.margin = margin(0, 0, 0, 0),
      legend.spacing.x = unit(0, "mm"),
      legend.spacing.y = unit(0, "mm"))

删除所有空格。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接