在使用 ggplot2 重现图像时,有一个有趣的要求。为图添加第二个标题,将位置设置为右侧(最好对颜色和其他特征进行更改)。它看起来像这样:
使用annotate
函数,由于的限制,这种方法不太方便panel
。
经过搜索,下面提供了一种方法: 在面板外添加 ggplot 注释?或者两个标题? 我想知道现在有没有更简单、更直接的方法来实现这一点。
library(tidyverse)
ggplot(mtcars, aes(wt, mpg)) +
geom_point()+
ggtitle('left')+
annotate("text", label="right",
x=Inf, y=Inf, vjust=1, hjust=1)
自 v3.5.1 以来,ggplot 的最新功能之一是能够以 npc 坐标指定文本注释的 x 和 y 坐标(即相对于面板,左下角为 x = 0,y = 0,右上角为 x = 1,y = 1)。执行此操作的方法是将所需的 x 和 y 坐标包装在 中
I()
。只要我们关闭剪辑,就可以轻松地将文本放置在绘图面板外的固定位置:
我不知道还有什么更简单的方法可以添加“第二个”标题。但除了操纵选项
gtable
(我认为这是最干净的方法)之外,您可能还考虑使用annotation_custom
需要正确考虑标题规格的方法。请注意,为简单起见,我设置vjust=0
为垂直对齐两个标题(使用默认值,vjust=1
我无法弄清楚如何实现这一点。):