我有一个用以下命令生成的plot g:
library(ggplot2)
g = ggplot(mtcars, aes(mpg, cyl)) +
geom_point()现在,我想使用annotate (或其他任何工具)将文本添加到绘图中。我特别希望文本出现在绘图的左下角。
这是可行的:
g + annotate("text", x = 12, y = 4, label = "Boring Label")

然而,这种方法的问题是,我必须知道绘图坐标(x = 12,y= 4),才能将文本放在绘图的左下角。我将为许多不同的绘图自动执行此过程,并且我希望在不知道绘图的最小和最大坐标的情况下,将相同的文本放在相同的位置(左下角)。例如,像c(0.3, 0.1)或c(x = 0.3, y = 0.1) (0 =最小值,x和y的最大值为1)将非常有用。但这不适用于annotate("text", x = 0.3, y = 0.1, label = "Boring Label")。
发布于 2021-11-01 13:06:19
可以使用library(ggpp)以npc单位指定文本位置
g + ggpp::geom_text_npc(aes(npcx = x, npcy = y, label=label),
data = data.frame(x = 0.05, y = 0.05, label='Boring label'))

发布于 2021-11-01 11:13:46
您可以尝试这种方法,通过每个变量的最大值来缩放位置。当然,您可以根据文本所在的位置更改0.95的值。
ggplot(mtcars, aes(mpg, cyl)) +
geom_point() +
annotate("text", x = max(mtcars$mpg) * 0.95, y = max(mtcars$cyl) * 0.95, label = "Boring Label")

https://stackoverflow.com/questions/69796046
复制相似问题