R 使用函数保存ggplot

R 使用函数保存ggplot,r,ggplot2,R,Ggplot2,我想创建一个保存绘图的函数(从ggplot) 这是一个数据框: ### creating data frame music <- c("Blues", "Hip-hop", "Jazz", "Metal", "Rock") number <- c(8, 7, 4, 6, 11) df.music <- data.frame(music, number) colnames(df.music) <- c("Music", "Amount") 然而,我想用一个函数来自动实现这

我想创建一个保存绘图的函数(从
ggplot

这是一个数据框:

### creating data frame
music <- c("Blues", "Hip-hop", "Jazz", "Metal", "Rock")
number <- c(8, 7, 4, 6, 11)
df.music <- data.frame(music, number)
colnames(df.music) <- c("Music", "Amount")
然而,我想用一个函数来自动实现这一点,该函数将我要保存的绘图作为参数。 我不知道该怎么做;以下是我尝试过的:

save <- function(myplot){
  plot<- myplot
  pdf("lol.pdf", width=5, height=5)
  plot
  dev.off()
}
### .pdf file is created but doesn't work
save(myplot) 
save您可以使用
print()
将从
ggplot2
生成的绘图保存到文件中

首先,定义保存绘图的函数:

savePlot <- function(myPlot) {
        pdf("myPlot.pdf")
        print(myPlot)
        dev.off()
}

或者,您可以在创建绘图后使用
ggsave()

 myPlot <- ggplot(ggplot(data=df.music, aes(x=music, y=number)) +
 geom_bar(stat="identity") +
 xlab(colnames(df.music)[1]) +
 ylab(colnames(df.music)[2]) +
 ylim(c(0,11)) +
 ggtitle("Ulubiony typ muzyki wśród studentów")
ggsave(filename="myPlot.pdf", plot=myPlot)

以下内容对我很有用,也可能对其他人有用。可以保存最后一个绘图,而无需显式引用它

ggsave("filename.pdf",  # jpg, png, eps, tex, etc.
       plot = last_plot(), # or an explicit ggplot object name,
       width = 7, height = 5, 
       units = "in", # other options c("in", "cm", "mm"), 
       dpi = 300)

如果你想要一个图像文件而不是pdf,下面的方法也可以

ggsave(filename="myPlot.jpg", plot=last_plot())
或使用其他参数,如下所示

ggsave(filename="myPlot.jpg", plot=lastplot(),
       width = 10, height = 5, 
       units = "cm", # other options are "in", "cm", "mm" 
       dpi = 200
       )

还支持以下文件类型:“eps”、“ps”、“tex”(pictex)、“pdf”、“jpeg”、“tiff”、“png”、“bmp”、“svg”或“wmf”。

您是否尝试过
ggsave
ggsave("filename.pdf",  # jpg, png, eps, tex, etc.
       plot = last_plot(), # or an explicit ggplot object name,
       width = 7, height = 5, 
       units = "in", # other options c("in", "cm", "mm"), 
       dpi = 300)
ggsave(filename="myPlot.jpg", plot=last_plot())
ggsave(filename="myPlot.jpg", plot=lastplot(),
       width = 10, height = 5, 
       units = "cm", # other options are "in", "cm", "mm" 
       dpi = 200
       )