ggsave():UseMethod(“grid.draw”)中的错误:没有适用于'grid.draw'的方法应用于类“character”的对象

时间:2017-04-02 16:35:15

标签: r ggplot2

我正在尝试用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"

1 个答案:

答案 0 :(得分:7)

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

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