Я не совсем уверен, что вы спрашиваете. Если речь идет о том, как включить и масштабировать (gg) график в пределах a (gg) графика, вот минимальный воспроизводимый пример
gg1 <- ggplot(mtcars, aes(mpg, wt)) +
geom_point() +
geom_smooth(method = "lm")
gg2 <- ggplot(mtcars, aes(mpg, hp)) +
geom_point()
gg1 + annotation_custom(
ggplotGrob(gg2),
xmin = 25, xmax = 34, ymin = 3.5, ymax = 5.5)
Размеры участка определяются координатами (xmin, ymin)
и (xmax, ymax)
.
Обновление
В ответ на ваш комментарий, возможно, это то, чтоВы после?
library(grid)
library(png)
fn <- tempfile("plot", fileext = "png")
ggsave(filename = fn, plot = gg2, device = "png")
img <- readPNG(fn)
gg1 + annotation_custom(
rasterGrob(img, interpolate = T),
xmin = 25, xmax = 28, ymin = 3.5, ymax = 5)
Идея состоит в том, чтобы сохранить участок во временном файле PNG;затем мы можем использовать png :: readPNG with
grid :: rasterGrob` для отображения PNG в качестве пользовательской аннотации на основном графике.