Ошибка в plot.new(): слишком большие значения полей в R

Я новичок в R, но я сделал многочисленные корреляционные графики с меньшими наборами данных. Однако, когда я пытаюсь построить большой набор данных (2gb +), я могу создать сюжет просто отлично, но легенда не появляется. Любой совет? или альтернативы?

library(gplots)
r.cor <- cor(r)
layout(matrix(c(1,1,1,1,1,1,1,1,2,2), 5, 2, byrow = TRUE))
par(oma=c(5,7,1,1))
cx <- rev(colorpanel(25,"yellow","black","blue"))
leg <- seq(min(r.cor,na.rm=T),max(r.cor,na.rm=T),length=10)
image(r.cor,main="Correlation plot Normal/Tumor data",axes=F,col=cx)
axis(1, at=seq(0,1,length=ncol(r.cor)), labels=dimnames(r.cor)[[2]], 
    cex.axis=0.9,las=2)
axis(2,at=seq(0,1,length=ncol(r.cor)), labels=dimnames(r.cor)[[2]],
     cex.axis=0.9,las=2)
image(as.matrix(leg),col=cx,axes=T)     

Ошибка в plot.new(): слишком большие поля рисунка

tmp <- round(leg,2)
axis(1,at=seq(0,1,length=length(leg)), labels=tmp,cex.axis=1)

Ответ 1

Я подозреваю, что проблема в том, что небольшая область фигур 2, созданная вашим вызовом layout(), недостаточно велик, чтобы содержать только поля по умолчанию, не говоря уже о графике.

Прежде чем строка, вызывающая проблему, попробует:

par(mar = rep(2, 4))

затем постройте второе изображение

image(as.matrix(leg),col=cx,axes=T)

Вам нужно будет поиграть с размером полей на вызове par(), который я показываю, чтобы получить это право. Вам также может потребоваться увеличить размер фактического устройства, на котором вы рисуете.

Окончательный совет, сохраните значения par() по умолчанию перед их заменой, поэтому измените существующий вызов par() на:

op <- par(oma=c(5,7,1,1))

то в конце графика сделайте

par(op)

Ответ 2

Эта ошибка может возникать в Rstudio просто потому, что панель "Графики" просто слишком мала. Попробуйте масштабировать свои "файлы, сюжеты, пакеты, справку, просмотрщик" и посмотреть, помогает ли это!

Ответ 3

Если вы получили это сообщение в RStudio, щелкнув по фигуре "метла" "Очистить все графики" на вкладке "Графики" и снова попытайтесь выполнить попытку plot().

введите описание изображения здесь

Ответ 4

Я получил эту ошибку в R Studio и был просто исправлен, увеличив боковую панель, щелкнув и перетащив ее край справа налево.

Ответ 5

Это иногда случается в RStudio. Чтобы решить эту проблему, вы можете попытаться выполнить привязку к внешнему окну (только для Windows):

windows() ## create window to plot your file
## ... your plotting code here ...
dev.off() 

Ответ 6

Проверьте, является ли ваш объект списком или вектором. Для этого введите is.list(yourobject). Если это так, попробуйте переименовать его x<-unlist(yourobject). Это превратит его в вектор, который вы можете построить.

Ответ 7

enter image description here

Просто увеличьте эту область, если вы используете RStudio.

Ответ 8

У меня была эта ошибка, когда я пыталась построить высокомерные данные. Если это происходит с вами, попробуйте многомерное масштабирование: http://www.statmethods.net/advstats/mds.html

Ответ 9

Я боролся с этой ошибкой в ​​течение нескольких недель (используя RStudio). Я попытался переместить окно сюжета все больше и меньше, но это не помогло. Когда я переместил приложение на мой большой монитор, проблема исчезла! Я был ошеломлен... так много потраченных впустую часов... Я знал, что мой код правильный...

Ответ 10

Полоса холстов RStudio ограничивает ширину и высоту графика. Однако, если вы делаете свой сюжет из Rmarkdown фрагмента кода, он работает без ограничения поля холста, потому что область печати задается в соответствии с размером бумаги.

Например:

    ```{r}
#inside of code chunk in Rmarkdown
        grid <- par(mfrow=c(4, 5))
        plot(faithful, main="Faithful eruptions")
        plot(large.islands, main="Islands", ylab="Area")
        ...
        par(grid)
    ```

Ответ 11

Я нашел эту ошибку сегодня. Первоначально я пытался вывести его в файл .jpeg с низкой шириной и высотой.

jpeg("method1_test.jpg", width=900, height=900, res=40)

Позже я увеличил ширину и высоту до:

jpeg("method1_test.jpg", width=1900, height=1900, res=40)

Ошибки не было.:)

Вы также можете играть с разрешением, если разрешение высокое, вам нужно больше ширины и высоты.

Ответ 12

Я нашел ту же ошибку сегодня. Я пробовал кнопку "Очистить все графики", но она выдает ту же ошибку. Тогда этот трюк сработал для меня, попробуйте увеличить площадь сюжета перетаскиванием. Это поможет вам точно.

Ответ 13

Я просто использовал Очистить все графики, затем снова дал команду заговора, и это было полезно