ПРИМЕЧАНИЕ. При использовании R 2.12.1 в Windows 7 64bit эта проблема исчезла.Если вы столкнулись с этой проблемой, сначала попробуйте обновить версию R.
После того, как проблема снова возникла в другом вопросе, я повторно проверяю свой тестовый код на моей новой системе, чтобы проверить, устранена ли ошибка,и это так.
РЕДАКТИРОВАТЬ: хитрость, почему базовый код может работать, заключается в том, что он использует разрешение только 72 точек на дюйм, а не 300 точек на дюйм, как стандарт в ggsave()
Я считаю.
так что ggsave("tst.png",height=9,width=12,dpi=72)
мог бы добиться цели.
Но у вас действительно должен быть сумасшедший заговор, если он не может его взять.Насколько я могу догадаться, проблема связана с видеокартой (как следует из этого сообщения от проф. Рипли ).
Если проблема с разрешением, вам лучше перейти на векторизованные форматы, такие как eps или pdf.
EDIT 2:
Очевидно, что где-то есть ошибка, связанная скакая-то утечка памяти может быть?Дайте следующий код:
library(car)
library(ggplot2)
qplot(education,data=Vocab,geom="density",colour=sex)+facet_wrap(~year)
setwd("G:/Temp")
i<-1
while(1){
tryCatch(ggsave("tst.png",height=9+i,width=12+i),error=function(e) {print(i);stop(e);})
i <- i+1
}
Это работает нормально для меня, пока я не достигну около 9, тогда я получаю ошибку, которую вы получаете.Каждая следующая попытка выполнения кода, начиная с i=1
, выдает ту же ошибку.Попытка с png()
и dev.off()
снова выдает ту же ошибку.Похоже, что некоторая часть памяти заполняется и не очищается, что эффективно предотвращает сохранение другого png-файла.также для меня gc()
ничего не сделал.Даже закрытие R и повторное открытие не сработало.
Это "решено" с помощью ggsave("tst.pdf")
, но ошибка остается.Я бы доложил команде R.