是否可以将图例定位在R中ggplot的右上角?

Jac*_*ley 16 r ggplot2

我正在尝试为ggplot创建一个主题,然后我可以将它用于我的所有图形并让它们看起来既漂亮又漂亮又统一.我想将图例从其右侧垂直居中的当前位置移动到与右侧图形顶部对齐,如下面的红色箭头所示.

期待的传奇运动

我想不明白.我可以通过使用它来定位情节内部,legend.position但如果我这样做,legend.justification = c(0.0, 1.0)它会将图例推到它绘制的区域之外并完全切断.我知道我可以通过弄乱每个图形的grobs和gtables来为每个图形单独完成它,但我不希望每次绘制图形时都这样做.

反正有没有这样做theme

rmf*_*rmf 18

似乎最终可能与ggplot2 2.2.0

在此输入图像描述

library(ggplot2)
ggplot(mpg, aes(displ, hwy, colour=fl)) + 
  geom_point() + 
  theme(legend.justification = "top")
Run Code Online (Sandbox Code Playgroud)


And*_*rie 5

尝试特别尝试主题选项

  • legend.key.width
  • plot.margin

试试这个:

library(ggplot2)

ggplot(iris, aes(Sepal.Length, Sepal.Width, col=Species)) + 
    geom_point() + 
    theme(
        legend.position=c(1,1), 
        legend.justification=c(0, 1), 
        legend.key.width=unit(1, "lines"), 
        plot.margin = unit(c(1, 5, 0.5, 0.5), "lines")
    )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 使用这种方法的麻烦在于需要调整到图例中的特定元素 - 较短的项目需要较小的边距,较长的项目需要较大的余量 - 所以每次我需要手动调整它制作新图表; 我希望有一些我可以应用的东西,而不是每次调整. (3认同)