R ggplot2:将图例移动到拐角处,但将其保留在边距中?

R ggplot2:将图例移动到拐角处,但将其保留在边距中?,r,ggplot2,legend,margins,legend-properties,R,Ggplot2,Legend,Margins,Legend Properties,我想将我的ggplot2图例移到角落,但不在绘图本身内部。所以它应该仍然在边缘,但不在中间。我找到的唯一选项是选择“顶部”、“右侧”等,或者在绘图本身中使用自定义坐标 例如,以这张图片为例: 想象一下,将图例从当前位置直接向下滑动到右下角 例如,我尝试将图例位置设置为c(12,2),但它只是消失了 将其设置为“右”是当前图像的内容,但我需要图例向下滑动到“右下角”。您可以展开绘图页边距,然后将图例位置设置为绘图之外的某个位置 创建您的数据: dat = data.frame(x=1:10, y

我想将我的ggplot2图例移到角落,但不在绘图本身内部。所以它应该仍然在边缘,但不在中间。我找到的唯一选项是选择“顶部”、“右侧”等,或者在绘图本身中使用自定义坐标

例如,以这张图片为例:

想象一下,将图例从当前位置直接向下滑动到右下角

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


将其设置为“右”是当前图像的内容,但我需要图例向下滑动到“右下角”。

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

创建您的数据:

dat = data.frame(x=1:10, y=10:1, type=rep(c('a', 'b'), each=5))
使用
主题
中的
绘图边距
图例位置
元素。首先用边距创建一个
单元
对象:

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坐标。)

是否可以使用(scale_x_continuous()将x轴扩展到12然后使用额外的空间?很有创意,但是没有。它需要足够的抛光以满足副总裁的眼睛。我尝试了你的代码。对于边距部分,我得到:错误:找不到函数“unit”。编辑:结果是你需要附加网格包才能使用unit命令。它现在工作得很好。谢谢!