0

使用facet_zoom()from {ggforce}packge 时,有没有办法自己标记方面?

例如,我可以生成以下图:

library(ggplot2)
library(ggforce)

ggplot(iris, aes(Petal.Length, Petal.Width, colour = Species)) +
  geom_point() +
  facet_zoom(x = Species == 'versicolor') +
  labs(caption = "Figure 1. a) entire data range; b) zoom in on versicolor") +
  theme_bw() +
  theme(plot.caption = element_text(hjust = 0))

reprex 包于 2021-11-19 创建(v2.0.1)


但是我怎样才能真正标记这些方面呢?我想实现类似:

演示

4

1 回答 1

0

手动解决方案可以基于包draw_label(){cowplot}

library(ggplot2)
library(ggforce)
library(cowplot)

p <- 
  ggplot(iris, aes(Petal.Length, Petal.Width, colour = Species)) +
  geom_point() +
  facet_zoom(x = Species == 'versicolor') +
  labs(caption = "Figure 1. a) entire data range; b) zoom in on versicolor") +
  theme_bw() +
  theme(plot.caption = element_text(hjust = 0))

ggdraw(p) +
  draw_label("a)", color = "black", size = 15, x = 0.09, y = 0.95) +
  draw_label("b)", color = "black", size = 15, x = 0.09, y = 0.6)

reprex 包(v2.0.1)于 2021 年 11 月 19 日创建


但是,这远非最佳,因为标签的位置是绝对的,这意味着在 RStudio 中调整绘图的大小也会改变位置。最佳解决方案会将标签锚定到相对于刻面的某个位置,例如:"upper-left",因此不受调整大小的影响。

于 2021-11-19T10:19:50.553 回答