首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不知道绘图的确切坐标的情况下,如何在绘图(ggplot2)上放置文本?

在不知道绘图的确切坐标的情况下,如何在绘图(ggplot2)上放置文本?
EN

Stack Overflow用户
提问于 2021-11-01 11:07:53
回答 2查看 82关注 0票数 2

我有一个用以下命令生成的plot g

代码语言:javascript
复制
library(ggplot2)

g = ggplot(mtcars, aes(mpg, cyl)) +
        geom_point()

现在,我想使用annotate (或其他任何工具)将文本添加到绘图中。我特别希望文本出现在绘图的左下角。

这是可行的:

代码语言:javascript
复制
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")

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-01 13:06:19

可以使用library(ggpp)以npc单位指定文本位置

代码语言:javascript
复制
g + ggpp::geom_text_npc(aes(npcx = x, npcy = y, label=label), 
                  data = data.frame(x = 0.05, y = 0.05, label='Boring label'))

票数 2
EN

Stack Overflow用户

发布于 2021-11-01 11:13:46

您可以尝试这种方法,通过每个变量的最大值来缩放位置。当然,您可以根据文本所在的位置更改0.95的值。

代码语言:javascript
复制
ggplot(mtcars, aes(mpg, cyl)) +
        geom_point() +
        annotate("text", x = max(mtcars$mpg) * 0.95, y = max(mtcars$cyl) * 0.95, label = "Boring Label")

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69796046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档