我在将图表保存到图像文件时遇到问题。 我有以下代码。数据源与我工作的不一样,但重点是相同的。
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中创建的图。
我不知道我是不是说了一些轻率的东西,但似乎当在一个被调用的函数内部创建情节时,它需要一些我无法弄清楚的东西。
答案 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()
}