Я просто перемещаю свой комментарий вниз как ответ ...
Все вызовы ggplot2 могут быть сохранены в переменной. Пока переменная остается неизменной, вы можете добавить к ней дополнительные слои. Как и с любой другой переменной или средой - эти переменные графика также можно сохранить в файл для последующего использования.
Например:
dat <- data.frame(x=rnorm(10000),y=rnorm(10000))
plot1 <- ggplot(dat, aes(x))
plot2 <- ggplot(dat, aes(y))
save(file="~/Plots.Rdata",list=ls()[grep("plot",ls())]) # Save vars named plot...
rm(plot1,plot2) # Remove
load("~/Plots.Rdata") # Reload Plots
plot1 + geom_histogram() # Add new layer later
plot2 + geom_histogram() # Add new layer later
UPDATE
В ответ на ваш комментарий ниже относительно уменьшения размера:
Вы можете преобразовать свою гистограмму в график плотности, если вам нужно, чтобы она была меньше. Обратите внимание, что при этом вы теряете информацию и просто создаете линейные графики плотности:
first.density <- density(dat$x) # Look at str(x.density) you'll see x and y
second.density <- density(dat$y) # Look at str(y.density) you'll see x and y
dat1 <- data.frame(x=first.density$x,y=first.density$y)
dat2 <- data.frame(x=second.density$x,y=second.density$y)
plot3 <- ggplot(dat1, aes(x,y))
plot4 <- ggplot(dat2, aes(x,y))
Как видите, размер объекта значительно уменьшен:
object.size(plot1)
object.size(plot2)
object.size(plot3)
object.size(plot4)