将注释(标签)相对于默认位置向右移动。
下面给出一个示例:
library(patchwork)
p1 <- ggplot(iris, aes(x=Sepal.Length, y=Petal.Length)) + geom_point()
p2 <- ggplot(iris, aes(x=Sepal.Length, y=Petal.Length)) + geom_point()
tags = list(c('A','B'))
p1 + p2 +
plot_annotation(tag_levels = tags)
# + theme(plot.tag.position = c(0, 1)) # really identical to "topleft"?
如何将标签“B”(第二个图的标签)向右移动?
我尝试修改 plot.tag.location 和 plot.tag.position,但这些参数似乎并非相对于“topleft”,并且也会影响标签“A”。
tag = element_text(hjust=2) 不会改变任何东西,
尽管 tag = element_text(vjust=2) 确实起作用。
tag = element_text(margin = margin(l=12)) 只是为所有标签的左侧添加边距,但我想移动注释(标签),同时不在各个面板(绘图)之间增加额外的间距。
解决方案
我们可以使用 theme(plot.tag.position = c(0.05, 0.975))
library(patchwork)
library(ggplot2)
p1 <- ggplot(iris, aes(Sepal.Length, Petal.Length)) + geom_point()
p2 <- ggplot(iris, aes(Sepal.Length, Petal.Length)) + geom_point()
p1 + (p2 + theme(plot.tag.position = c(0.05, 0.975))) +
plot_annotation(tag_levels = list(c('A', 'B')))

如果你希望两个标签都更靠近绘图:
p1 + p2 + plot_annotation(tag_levels = list(c('A', 'B'))) &
theme(plot.tag.position = c(0.05, 1))

创建于2026-07-03,使用 reprex v2.1.1
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。