我想用以下代码在图的最后一个面上注释一些文本:
library(ggplot2)
p <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
p <- p + facet_grid(. ~ cyl)
p <- p + annotate("text", label = "Test", size = 4, x = 15, y = 5)
print(p)
但是这段代码注释了每个方面的文本 . 如果您指导我如何仅在一个方面获得带注释的文本,我将非常感激 . 提前致谢 .
5 回答
通常你会做这样的事情:
它应该工作而不完全指定因子变量,但可能会抛出一些警告:
这是没有文字注释的情节:
让我们创建一个额外的数据框来保存文本注释:
或者,我们可以手动指定每个标签的位置:
我们还可以在两个方面标记图:
笔记:
您可以使用
-Inf
和Inf
在面板边缘定位文本 .您可以使用
hjust
和vjust
来调整文本对齐方式 .文本标签数据框
dat_text
应该有一个适用于facet_grid()
或facet_wrap()
的列 .我认为对于上面的答案lab =“Text”是没用的,下面的代码也没问题 .
但是,如果要在不同的子图中标记不同,则可以通过以下方式进行标记:
如果有人正在寻找一种简单的方法来标记报表或出版物的方面,egg包有一个非常漂亮的
tag_facet()
函数由reprex包创建(v0.2.1.9000)
稍微扩展了joran的优秀答案,以阐明标签数据框架的工作原理 .
您可以将“mpg”和“wt”分别视为x和y坐标(我发现跟踪原始变量名称比重命名它们更容易,就像在Kamil的优秀答案中一样) . 每个标签需要一行,“cyl”列显示每行与哪个facet相关联 .