Pemformatan teks dalam anotasi ggplot

Aug 23 2020

Apakah mungkin untuk membuat anotasi dengan kode html? Saya mencoba mewarnai hanya beberapa kata dan bukan keseluruhan teks.

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)

Dibuat pada 2020-08-22 oleh paket reprex (v0.3.0)

Jawaban

5 PedroAphalo Aug 23 2020 at 02:36

Anda dapat menggunakan paket 'ggtext'. Ini cukup baru. Satu-satunya perubahan yang diperlukan untuk contoh Anda adalah mengganti geom: using, "richtext"bukan "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)

Dimungkinkan untuk digunakan fill = NAuntuk menghapus latar belakang. Untuk menghapus garis perbatasan label.color = NAbisa digunakan.

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)