是否可以以geom_histogram()
生成的信息存储,以便在后期检索?我想计算一个大数据集的直方图,并存储它,以便我可以在以后添加另一层信息。
之前我曾考虑使用pdf
或jpeg
来执行此操作(并最近询问了question这个主题)但我认为如果我设法使用实际数据。
答案 0 :(得分:3)
我只是将评论作为答案......
所有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
在回复您的评论时,关于缩小尺寸:
如果您需要将直方图缩小,可以将直方图转换为密度图。请注意,执行此操作时会丢失信息,而实际上只是创建密度的线图:
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)