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)