R无法将绘图保存到图像 - 无法从空设备复制

时间:2015-03-05 00:37:12

标签: r

我在将图表保存到图像文件时遇到问题。 我有以下代码。数据源与我工作的不一样,但重点是相同的。

test <- function(){
  data(diamonds)
  qplot(x = price, data = diamonds, xlim = c(0, 19000), binwidth = 100)
  dev.copy(jpeg, filename = 'imag.jpg')
  dev.off()
}

如果我在控制台上运行'test()',我会收到以下消息:

Error in dev.copy(jpeg, filename = "imag.jpg") : cannot copy from the null device

但是,如果我单独按顺序运行测试功能的每一行,图像将成功保存。

值得一提的是,在这两种情况下,在运行代码之前,我已经清理了以前在R-Studio中创建的图。

我不知道我是不是说了一些轻率的东西,但似乎当在一个被调用的函数内部创建情节时,它需要一些我无法弄清楚的东西。

1 个答案:

答案 0 :(得分:4)

使用ggplots,您最好使用ggsave保存它们。

test <- function() {
  my_plot = qplot(x = price, data = diamonds, xlim = c(0, 19000),
                  binwidth = 100)
  ggsave("imag.jpg", plot = my_plot) 
}

如果您不喜欢这样,那么,正如SenorO所说,您可以print情节:

test <- function() {
  my_plot = qplot(x = price, data = diamonds, xlim = c(0, 19000),
                  binwidth = 100)
  print(my_plot)
  dev.copy(jpeg, filename = 'imag.jpg')
  dev.off()
}