ggplot2:将图例移到角落但保留在边距内?

时间:2015-04-22 20:54:54

标签: r ggplot2 legend margins legend-properties

我想将我的ggplot2图例移到角落,但是不是在图中。所以它应该在边缘仍然,但不在中心。我发现的唯一选择是选择" top," "右,"等,或在剧情本身中使用自定义坐标

例如,拍下这张图片:

Hadley Plot](http://i.imgur.com/wpuuZoZ.png)

并想象一下将图例从当前位置直接滑到右下角。

我尝试将图例位置设置为c(12, 2),但它只是消失了。

将其设置为"对"是目前的形象,但我需要传说下滑到"右下角。"

1 个答案:

答案 0 :(得分:1)

您可以展开绘图边距,然后将图例位置设置为绘图外的某个位置。

创建数据:

dat = data.frame(x=1:10, y=10:1, type=rep(c('a', 'b'), each=5))

使用plot.margin中的legend.positiontheme元素。首先使用边距创建一个unit对象:

margins = unit(c(1, 4, 1, 1), 'lines')

然后使用边距和图例位置调用ggplot。

ggplot(dat, aes(x, y, color=type)) + 
    geom_point() +
    theme(plot.margin=margins,
          legend.position=c(1.075, 0))

(图例位置通常设置在0和1之间(使用标准化的父坐标),而不是图的实际x和y坐标。)