如何在 ggplot 中添加文本框注释?

24

我想在ggplot图中添加一个小的白色文本框,其中包含自定义文本。我要添加的文本是用于标识我正在添加到图中的水平线。

  ggplot(cb_emp) +  
  geom_point(aes(x = grossunits, 
                 y = rate, 
                 color = as.factor(outlier))
                 , alpha = 1/4) +
  scale_color_discrete(name  ="Outcome",
                        breaks=c(0, 1),
                        labels=c("Not outlier", "Outlier")) +
  geom_hline(aes(yintercept = meancbrate)) + 
  geom_vline(aes(xintercept = meanac) +
  annotate("text", x = max(grossunits), y = meancbrate, label = "avg rate")  

这是我得到的图:

在此输入图片描述

这是我想要的图(或类似于此):

在此输入图片描述

请让我知道是否有一种简单的方法来实现这一点。

非常感谢帮助!


尝试使用geom_label(x = max(grossunits),y = meancbrate,label =“平均率”) - ahly
感谢您的快速回复 @ahly!我尝试了,但是没有画图……它无法渲染。此外,我的 R Studio 实例挂起了。也许它正在尝试标记所有点?我有大约 25k 个点。 - ChetanMV
计算标签显示在ggplot命令之外的x和y值。然后执行类似于geom_label(x = x_lab, y = y_lab, label = "avg rate")的操作,其中x_laby_lab是您想要标签显示的位置。 - ahly
geom_label似乎需要与点数一样多的标签,因此这种方法行不通——annotate似乎能够做到这一点,但没有提供围绕注释文本的方框选项。 - Markm0705
1个回答

38

您只需简单更改为

annotate("label", x = max(grossunits), y = meancbrate, label = "avg rate") 

将使用geom_label而不是geom_text,因此在标签周围会得到一个矩形。


有没有办法增加通过annotate编写的文本的字体大小? - Lazarus Thurston
1
可能可以添加一个参数 size = 7 - Richard Telford

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接