[r] Annotazione del testo sul singolo aspetto in ggplot2


0 Answers

Ecco la trama senza annotazioni di testo:

library(ggplot2)

p <- ggplot(mtcars, aes(mpg, wt)) +
  geom_point() +
  facet_grid(. ~ cyl) +
  theme(panel.spacing = unit(1, "lines"))
p

Creiamo un frame di dati aggiuntivo per contenere le annotazioni di testo:

dat_text <- data.frame(
  label = c("4 cylinders", "6 cylinders", "8 cylinders"),
  cyl   = c(4, 6, 8)
)
p + geom_text(
  data    = dat_text,
  mapping = aes(x = -Inf, y = -Inf, label = label),
  hjust   = -0.1,
  vjust   = -1
)

In alternativa, possiamo specificare manualmente la posizione di ciascuna etichetta:

dat_text <- data.frame(
  label = c("4 cylinders", "6 cylinders", "8 cylinders"),
  cyl   = c(4, 6, 8),
  x     = c(20, 27.5, 25),
  y     = c(4, 4, 4.5)
)
p + geom_text(data = ann_text,label = "Text")

p + geom_text(
  data    = dat_text,
  mapping = aes(x = x, y = y, label = label)
)

Gli appunti:

  • È possibile utilizzare -Inf e Inf per posizionare il testo ai bordi di un pannello.
  • È possibile utilizzare hjust e vjust per regolare la giustificazione del testo.
  • Il dat_text frame di dati dell'etichetta di testo dovrebbe avere una colonna che facet_grid() con il tuo facet_grid() o facet_wrap() .
Question

Voglio annotare un testo sull'ultimo aspetto della trama con il seguente codice:

library(ggplot2)
p <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
p <- p + facet_grid(. ~ cyl)
p <- p + annotate("text", label = "Test", size = 4, x = 15, y = 5)
print(p)

Ma questo codice annota il testo su ogni aspetto. Apprezzerei molto se mi guidassi come ottenere il testo annotato su un solo aspetto. Grazie in anticipo.






Related



Tags

r r   ggplot2