ggplot 注释中的文本格式

Posted

技术标签:

【中文标题】ggplot 注释中的文本格式【英文标题】:Text formatting in ggplot's annotate 【发布时间】:2020-12-11 20:48:44 【问题描述】:

可以用html代码注释吗?我正在尝试只为几个单词而不是整个文本着色。

library(tidyverse)
#> Warning: package 'ggplot2' was built under R version 4.0.2

mtcars %>%
  ggplot(aes(x = hp, y = mpg)) +
  geom_point() +
  annotate(geom = "text", label = "I'm <span style='color: red;'>red</span> \n and i'm <span style='color: orange;'>orange</span>",
           x = 250, y = 25)

由reprex package (v0.3.0) 于 2020 年 8 月 22 日创建

【问题讨论】:

【参考方案1】:

您可以使用包“ggtext”。这是相当新的。您的示例所需的唯一更改是替换 geom:使用 "richtext" 而不是 "text"

library(tidyverse)
library(ggtext)
#> Warning: package 'ggplot2' was built under R version 4.0.2

mtcars %>%
  ggplot(aes(x = hp, y = mpg)) +
  geom_point() +
  annotate(geom = "richtext", label = "I'm <span style='color: red;'>red</span> \n and i'm <span style='color: orange;'>orange</span>",
           x = 250, y = 25)

可以使用fill = NA 去除背景。去掉边框线label.color = NA可以用。

library(tidyverse)
library(ggtext)

mtcars %>%
  ggplot(aes(x = hp, y = mpg)) +
  geom_point() +
  annotate(geom = "richtext", label = "I'm <span style='color: red;'>red</span>\n and i'm <span style='color: orange;'>orange</span>",
           x = 250, y = 25, fill = NA, label.color = NA)

【讨论】:

您应该使用 标签而不是 \n 来实现所需的输出。 @alberson-miranda

以上是关于ggplot 注释中的文本格式的主要内容,如果未能解决你的问题,请参考以下文章

在ggplot中设置注释文本的宽度

R语言ggplot2可视化使用vjust和hjust参数对齐图像中的文本注释信息(左对齐右对齐居中)实战

当我在 plotly 中使用 ggplotly 函数时,为啥文本注释会丢失?

如何在ggplot2的注释中左对齐文本

用 ggplot2 注释 R 中的矩形以获得对数刻度的图形

更改文本注释的背景颜色以增加对比度和可见性