首页 文章

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

提问于
浏览
1

我想将我的ggplot2图例移动到角落,但是在情节本身内部 not . 所以它应该在边缘仍然,但不在中心 . 我找到的唯一选项是选择"top," "right,"等,或者使用自定义坐标 within .

例如,拍下这张图片:

Hadley Plot](https://www.javaroad.cn/files/images/b43a848a-3c5c-4544-836b-a975b02d6853.png)

并想象一下将图例从当前位置向右下方滑动到右下角 .

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

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

1 回答

  • 1

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

    创建数据:

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

    使用 theme 中的 plot.marginlegend.position 元素 . 首先使用边距创建一个 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坐标 . )

相关问题