ggforce facet_zoom, как комментировать только увеличенную графику

Я хотел бы аннотировать диаграмму только в увеличенной области, чтобы предоставить подробную информацию о выделенных данных.

В следующем примере кода идея состоит в том, чтобы текст "только для увеличения" отображался только в увеличенной области.

require(ggplot2)
require(ggforce)
ggplot(iris, aes(Petal.Length, Petal.Width, colour = Species)) +
    geom_point() +
    facet_zoom(x = Species == "versicolor") + 
    annotate("text", x=4, y=2, label="zoom only")

Текст только в увеличенном виде (ожидаемое состояние): текст только в увеличении

Текст в обоих (текущее состояние): текст в обоих

Есть способ сделать это?

1 ответ

Мы можем копаться в объект, и установить этот текст, чтобы быть прозрачным (alpha = 0):

p <- ggplot(iris, aes(Petal.Length, Petal.Width, colour = Species)) +
  geom_point() +
  facet_zoom(x = Species == "versicolor") + 
  annotate("text", x=4, y=2, label="zoom only")

pb <- ggplot_build(p)
pb$data[[2]][1, 'alpha'] <- 0
pg <- ggplot_gtable(pb)
plot(pg)

Другие вопросы по тегам