Je veux mettre en italique un seul caractère dans la deuxième ligne d'une annotation dans ggplot

Voici l'intrigue

iris %>%
  ggplot(aes(x = Sepal.Length,
             y = Species,
             fill = Species)) +
         stat_summary(geom = "bar", fun = "mean") +
         theme(legend.position = "none") -> p

Maintenant, je peux annoter l'intrigue comme ça et obtenir un seul caractère en italique tandis que le reste n'est pas en italique.

p + annotate("text", 
             label = "italic(N)==74",
             x = 3,
             y = 2,
             parse = T)  

enter image description here

Disons maintenant que je veux une annotation sur deux lignes avec certains caractères collés. Je peux le faire de cette façon sans utiliser plotmath

p + annotate("text", 
             label = paste("AUC = ", 
                           round(60.1876,3),
                           "\nN = ",
                           74,
                           sep = ""),
             x = 3,
             y = 2,
             size = 4)

enter image description here

Comme vous pouvez le voir, le caractère N n'est pas en italique. Existe-t-il un moyen de le faire ressembler au deuxième graphique mais avec le N en italique, soit en utilisant plotmath ou une autre technique?

0
llewmills 8 nov. 2020 à 02:09

1 réponse

Meilleure réponse

Utilisez atop pour dessiner du texte au-dessus du texte. Voir ?plotmath.

p +
  annotate(
    "text", 
    label = paste0("atop(AUC == ", round(60.1876, 3), ",italic(N) == 74)"),
    x = 3,
    y = 2,
    size = 4,
    parse = TRUE
  )

plot

1
Paul 7 nov. 2020 à 23:22