ggforce facet_zoom如何仅注释缩放图形

时间:2017-09-29 20:00:17

标签: r ggplot2 ggforce

我想仅在放大区域中注释图表,以提供有关突出显示数据的详细信息。

在以下示例代码中,我们的想法是仅在放大区域中显示“仅缩放”文本。

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")

仅在缩放时的文本(预期状态): text only in zoom

两者中的文字(当前状态): text in both

有办法吗?

1 个答案:

答案 0 :(得分: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)

enter image description here