"Ошибка в plot.new(): слишком большие поля рисунка"
В R я встретил бегущую ошибку следующим образом:
> png("p3_sa_para.png", 4, 2)
> par(mfrow=c(1,2))
> plot(c(1:10), ylab="Beta",xlab="Iteration")
Error in plot.new() : figure margins too large
> plot(c(1:10), ylab="Gamma",xlab="Iteration")
Error in plot.new() : figure margins too large
> dev.off()
X11cairo
2
Я уже сделал размер изображения маленьким, чтобы быть 4 на 2, почему он все еще жалуется на "слишком большие поля фигуры"? Как я могу решить эту проблему с помощью png?
Странно, что если я изменю png на pdf, это сработает. Я также задаюсь вопросом, почему?
Спасибо и приветствую!
Ответы
Ответ 1
Функция png()
использует пиксели не дюймы, поэтому попробуйте что-то вроде
png("p3_sa_para.png", 640, 480)
И чтобы ответить на ваш второй вопрос, да, pdf()
использует дюймы, потому что в векторно-графическом формате нет понятия пикселей. Функции help(png)
и help(pdf)
- ваши друзья.
Ответ 2
Проблема может возникнуть из-за использования определенной среды IDE. Я использовал Rstudio, и у меня появилось множество ошибок. Мой точный код отлично работал на консоли.
Ответ 3
Даже я получал сообщение об ошибке в R-Studio, в то время как сюжет отображался на консоли. Простой перезапуск RStudio решил проблему! Сказав это, страница поддержки RStudio предполагает, что сброс графического устройства dev.off()
может помочь. http://support.rstudio.org/help/kb/troubleshooting/problem-with-plots-or-graphics-device
Ответ 4
Это обычная проблема для печати специально, когда вы используете IDE, где есть место для генерации и отображения сюжета, считалось, что это общая проблема, и есть логика:
когда вы говорите R, чтобы что-то нарисовать, R сначала просмотрите данные, а затем просмотрите область, в которой он находится, чтобы сделать это.
Команды png() и аналогичные команды:
В вашем случае вы дали сюжет площади размером 4 на 2 пикселя для его построения, поэтому вы можете решить его, увеличив площадь в размере, который может соответствовать вашему сюжету. (как упоминается Dirk Eddelbuettel )
В случае IDE
В большинстве случаев это намного проще, просто увеличьте область построения, перетащив поля, а затем снова запустите свой код (закройте любой параметр par(), если вы открыли ранее и создали новый)
![enter image description here]()