"Ошибка в plot.new (): слишком большие поля рисунка" - PullRequest
16 голосов
/ 10 декабря 2010

В 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, то это будет работать.Мне также интересно, почему?

Спасибо и всего наилучшего!

Ответы [ 4 ]

24 голосов
/ 10 декабря 2010

Функция png() использует пикселей , а не дюймы, поэтому попробуйте что-то вроде

png("p3_sa_para.png", 640, 480)

И чтобы ответить на ваш второй вопрос, да, pdf() использует дюймы, потому что вектор-графический формат не имеет понятия пикселей.Функции help(png) и help(pdf) - ваши друзья.

7 голосов
/ 19 февраля 2013

Проблема может просто возникнуть при использовании определенной IDE. Я использовал Rstudio, и я получил множество ошибок. Мой точно такой же код отлично работал в консоли.

4 голосов
/ 15 сентября 2013

Даже я получал сообщение об ошибке в R-Studio, в то время как сюжет на консоли выглядел нормально.Простой перезапуск RStudio решил проблему!Сказав это, на странице поддержки RStudio предлагается, что сброс графического устройства dev.off() может помочь.http://support.rstudio.org/help/kb/troubleshooting/problem-with-plots-or-graphics-device

3 голосов
/ 06 декабря 2014

Это обычная проблема для построения графиков, особенно когда вы используете IDE, в которой есть место для генерации и показа графика, хотя это общая проблема, и за ней есть логика: когда вы приказываете R построить что-то, R сначала смотрит на данные, а затем смотрит на область, которая находится в его распоряжении, чтобы он мог выполнять построение.

png () и аналогичные команды:

В вашем случае вы дали участку 4 на 2 пикселя для его построения, чтобы вы могли решить его, увеличив площадь до размера, который может соответствовать вашему графику. (как упомянул Дирк Эддельбюттель )

В случае IDE

В большинстве случаев это намного проще, просто увеличьте область построения, перетаскивая поля, а затем повторно запустите ваш код (закройте любой par (), если он у вас был открыт ранее, и создайте новый). enter image description here

...