4

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

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

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

仅缩放文本(预期状态): 仅放大文本

两者中的文本(当前状态): 两者中的文字

有没有办法做到这一点?

4

1 回答 1

4

我们可以深入研究对象,并将该文本设置为透明(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)

在此处输入图像描述

于 2017-10-02T15:27:34.850 回答