【发布时间】:2016-07-22 22:03:03
【问题描述】:
我无法找到如何制作一个函数来制作一个绘图(使用 ggplot),然后使用我在函数中输入的名称保存该绘图,如下所示:
lcaplot <- function(name,lcmodel){
abc <- ggplot(lcmodel,aes(x = L1, y = value, fill = Var2))
abc <- abc + geom_bar(stat = "identity", position = "stack")
abc <- abc + facet_grid(Var1 ~ .)
abc <- abc + scale_fill_brewer(type="seq", palette="Greens") +theme_bw()
abc <- abc + labs(x = "Response Items",y="Probabilities", fill ="Answer categories")
abc <- abc + theme( axis.text.y=element_blank(),
axis.ticks.y=element_blank(),
panel.grid.major.y=element_blank())
这部分很好,因为它制作了我想要的情节,但我无法使用预先指定的名称保存它:
print(abc)
ggsave(abc,filename=name,device="png",limitsize=TRUE)
dev.off()
}
我尝试了多种方法,例如使用不同的函数(例如 png() )或更改顺序(首先 ggsave,然后打印)。
我收到以下错误消息:
Saving 6.2 x 3.71 in image.
Error in gsub("%%", "", s) : object 'name' not found.
这指的是 lcmodel(name,lcmodel) 中的输入。我也在这里尝试过不同的东西(例如函数 (xyz*,lcmodel)),但它不会运行。
这让我觉得我试图粘贴为名称的内容应该是: 1) 一个字符串 --> "name" 保存了一个名为 name.png 的图,这很好 - 但这意味着每次我运行代码时,我都会保存旧的...
或 2)一个对象。我试过添加类似的东西:
name <- name
刚开始,但没有任何帮助。
将不胜感激任何其他制作多个情节的方法。我有 60 组不同的 lcmodel 数据,我希望能够: lcaplot(pic1, lcmodel1) lcaplot(pic2, lcmodel2)
等等
这甚至可能吗?感谢任何输入或指出愚蠢的错误!
你的, 连
【问题讨论】:
标签: r function plot ggplot2 save