r - 使用函数保存 ggplot

标签 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")

然后我创建一个图:

### creating bar graph (this part is OK)
myplot <- 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")

现在我想将此图保存到 .pdf

这有效:

pdf("Myplot.pdf", width=5, height=5)
plot.music.bad
dev.off()

但是我想使用一个函数来自动执行此操作,该函数将我想要保存的图作为参数。 我不知 Prop 体该怎么做;这是我尝试过的:

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) 

那么,我该怎么做呢?

最佳答案

您可以使用 print()ggplot2 生成的绘图保存到文件中。

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

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

创建你的情节:

 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")

最后调用该函数:

savePlot(myPlot)
<小时/>

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

ggsave(filename="myPlot.pdf", plot=myPlot)

关于r - 使用函数保存 ggplot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22742737/

相关文章:

r - 如何为重叠的 x 轴标签交替换行?

r - 规范化 ggplot 直方图,使 R 中的第一个高度为 1(显示增长)

r - 如何使用 trans_new 在 ggplot2 中按常数移动比例而不会弄乱刻度标签?

r - 强制两列中的图表在 Flexdashboard 中一起滚动

r - 在 R 中使用 optim() 重现 Fisher 关于球形数据的书的结果

R - 绘制两个不同大小的向量

r - 自由比例,但每个面板的 x/y 范围相同

r - 使用用户输入选择子目录

r - 使用合并创建空白行

r - 如何在列表中的多个数据框中绘制特定列?