将ggplot应用到多列并保存多个图形输出

时间:2019-03-04 18:25:50

标签: r ggplot2

我想为数据帧(df)中的每一列创建并保存不同的图形。

背景:我的df称为final_fam_beliefs_percs 使用R 使用ggplot

到目前为止,我已经能够使用ggplot创建绘图功能,并使用“ lapply”将该功能应用于每个columneach列。请参阅以下代码:

graph_outputs <- lapply(final_fam_beliefs_percs, function(i) ggplot(final_fam_beliefs_percs, aes(x=location, y=as.numeric(i), fill=response)) +
             geom_bar(stat="identity", position=position_dodge()) +
             geom_text(aes(label=i), position=position_dodge(width=0.9), vjust=-0.25) +
             labs(x= "location", y="percentage"))

link for a above code graph output for one of the df columns

我现在想将每个图形另存为单独的png文件。 我已经尝试了下面的代码,但是当我的图形打印时,它们不再包含数据。

var_list= colnames(final_fam_beliefs_percs)
for (i in var_list) {
  plots = ggplot(final_fam_beliefs_percs, aes(x=location, y=as.numeric(i), fill=response)) +
    geom_bar(stat="identity", position=position_dodge()) +
    geom_text(aes(label=i), position=position_dodge(width=0.9), vjust=-0.25) +
    labs(x= "location", y="percentage") + ggtitle(i)

  ggsave(plots, file=paste0("rr_",i,".png"))
}

我认为我需要更改y = as.numeric(i)语句,或使用其他一些映射方法。

0 个答案:

没有答案