ggsave(): 使用方法“grid.draw”的错误:对类为“character”的对象应用不可适用的方法。

15

我正在尝试使用ggsave()保存一张图。我输入了以下内容:

library(ggplot2)

Test = data.frame("X" = seq(1, 10, 1), "Y" = 2*seq(1, 10, 1))

P = ggplot(
    Test, aes(x=X, y=Y))+
    geom_line()

ggsave(P, "test.pdf", device = "pdf")

但是出现了错误:

Saving 7 x 7 in image
Error in UseMethod("grid.draw") : 
  no applicable method for 'grid.draw' applied to an object of class "character"
2个回答

16

许多保存数据的R函数(例如write.table()saveRDS()等)都将要保存的对象作为它们的第一个参数。 但是,对于ggsave(),情况不是如此。 默认情况下,它的第一个参数是要保存到的文件名。 因此,上面的语法需要以下两种方式之一进行修改:

ggsave(plot = P, filename = "test.pdf", device = "pdf")
ggsave("test.pdf", P, device = "pdf")

2
我已经尝试了你的解决方案,但仍然收到相同的错误信息,你有什么想法吗?我正在使用ggsave('Image1.jpeg',plot=g,path='/home/theunie/Desktop/',device='jpeg') - theunie
2
将image1.jpge添加到路径参数中。它们应该是一个参数。 - Michael Ohlrogge
我认为即使不添加路径参数,它也可以工作,它会自动保存到下载文件夹中。 - undefined

0

我认为即使不添加路径参数,它也可以工作,它会自动保存到下载文件夹。


这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - mnist

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接