Помилка plot.new (): надмірна межа фігури, графік розсіювання


108

Я розглядав різні питання щодо рішення, і я спробував те, що було запропоновано, але не знайшов рішення, щоб змусити його працювати.

Кожен раз, коли мені хочеться запустити цей код, він завжди говорить:

Помилка в plot.new (): межа цифри занадто велика

і я не знаю, як це виправити. Ось мій код:

par(mfcol=c(5,3))
hist(RtBio, main="Histograma de Bio Pappel")
boxplot(RtBio, main="Diagrama de Caja de Bio Pappel")
stem(RtBio)
plot(RtBio, main="Gráfica de Dispersión")

hist(RtAlsea, main="Histograma de Alsea")
boxplot(Alsea, main="Diagrama de caja de Alsea")
stem(RtAlsea)
plot(RtTelev, main="Gráfica de distribución de Alsea")

hist(RtTelev, main="Histograma de Televisa")
boxplot(telev, main="Diagrama de Caja de Televisa")
stem(Telev)
plot(Telev, main="Gráfica de dispersión de Televisa")

hist(RtWalmex, main="Histograma de Walmex")
boxplot(RtWalmex, main="Diagrama de caja de Walmex")
stem(RtWalmex)
plot(RtWalmex, main="Gráfica de dispersión de Walmex")

hist(RtIca, main="Histograma de Ica")
boxplot(RtIca, main="Gráfica de caja de Ica")
stem(RtIca)
plot(RtIca, main="Gráfica de dispersión de Ica")

Що я можу зробити?



2
Поля здається занадто великим для вашого зображення. Це може статися, якщо у вас невелике вікно сюжету. У будь-якому випадку, ваш опис недостатній для діагностики проблеми. Ми можемо використати відтворюваний приклад або скріншот вашого R-сеансу з вікном сюжету.
— Роман Луштрик

Я в моєму випадку, це допомогло налагоджувати з невеликим підмножиною даних , яка повинна була бути побудована , як plot(df[1,1:3], df2[1,1:3])- і тоді я зрозумів, що я на самом деле хотів зробити , це plot(unlist(df[1,1:3]), unlist(df2[1,1:3]))також дивіться: stackoverflow.com/a/17074060/6018688
— fabianegli

Відповіді:


164

Кожен раз, коли ви створюєте сюжети, ви можете отримати цю помилку - " Error in plot.new() : figure margins too large". Щоб уникнути подібних помилок, ви можете спочатку перевірити par("mar")вихід. Ви повинні отримувати:

[1] 5.1 4.1 4.1 2.1

Щоб змінити цей запис:

par(mar=c(1,1,1,1))

Це має виправити помилку. Або ви можете відповідно змінити значення.

Сподіваюся, це працює для вас.


2
як ви точно знаєте, які значення знаходяться всередині поля? І чому ти кажеш, що я повинен отримувати [1] 5.1 4.1 4.1 2.1, але тоді ти мені кажеш провести це на всі 1?
— Зубний Герман

2
Я зіткнувся з тією ж проблемою з RStudio, і коли я ввійшов, par("mar")я отримав ту саму точну рядок, [1] 5.1 4.1 4.1 2.1щоб я ввійшов, par(mar=c(1,1,1,1))але тоді plot () нічого не будував, тому мені довелося закрити і RStudio, і термінал. Після повторного відкриття RStudio він повернувся до норми.
— noobninja

2
Зіткнувся з тією ж проблемою і в розмітці R в RStudio. Ні рішення Guest R, ні перезапуск @noobninja не виправили це для мене.
— СК.

Ви отримуєте цю помилку через проблему з компонуванням інтерфейсу RStudio, а не з кодом. Друга відповідь зафіксувала це для мене.
— Ніколь Салліван

1
@Nicole Sullivan Я отримав цю помилку також без RStudio. Я зробив, як описано, і це працює. Дякую @djhurio!
— Гуан-Джин Кім

105

Це може статися, коли панель сюжету в RStudio занадто мала для поля ділянки, яку ви намагаєтесь створити. Спробуйте розширити його і знову запустіть код.

RStudio UI викликає помилку, коли панель сюжету занадто мала для відображення діаграми: RStudio з панеллю сюжету занадто малий

Просте розширення панелі сюжету виправляє помилку та відображає діаграму: RStudio з розширеною панеллю сюжету


5
Це справді працює .. просто розширення ділянки допомагає
— Jiapeng Zhang

3
Так, зміна розміру панелей в RStudio працює. Це помилка RStudio, викликана, коли ви мінімізуєте праву частину інтерфейсу користувача, засунувши панель сюжету.
— Ніколь Салліван

це фактично працює в більшості випадків. є невелика кількість випадків, коли запаси дійсно такі малі, що навіть якщо ви максимізуєте це вікно, ви не зможете вирішити цю проблему
— Димитріос Захаратос

27

Запрошення dev.off()змусити RStudio відкрити новий графічний пристрій із налаштуваннями за замовчуванням для мене. HTH.


1
Не могли б ви пояснити, як це зробити?
— Швидка стрілка

20

Якщо ви отримаєте це повідомлення в RStudio, натисніть на фігуру "мітла" "Очистити всі ділянки" на вкладці Сюжети та спробуйте за допомогою plot () ще раз.

Більше того, виконайте команду

graphics.off()

11
напишіть це три рядкиgraphics.off() par("mar") par(mar=c(1,1,1,1))
— Hiren


1

Просто бічна нота. Іноді ця помилка "запасу" виникає через те, що ви хочете зберегти фігуру з високою роздільною здатністю (наприклад, dpi = 300або res = 300) в Р.
У цьому випадку потрібно вказати ширину та висоту . (Btw, ggsave()цього не потрібно.)

Це викликає помилку поля:

# eg. for tiff()
par(mar=c(1,1,1,1))
tiff(filename =  "qq.tiff",
     res = 300,                                                 # the margin error.
     compression = c( "lzw") )
# qq plot for genome wide association study (just an example)
qqman::qq(df$rawp, main = "Q-Q plot of GWAS p-values", cex = .3)
dev.off()

Це дозволить виправити помилку поля:

# eg. for tiff()
par(mar=c(1,1,1,1))
tiff(filename =  "qq.tiff",
     res = 300,                                                 # the margin error.
     width = 5, height = 4, units = 'in',                       # fixed
     compression = c( "lzw") )
# qq plot for genome wide association study (just an example)
qqman::qq(df$rawp, main = "Q-Q plot of GWAS p-values", cex = .3)
dev.off()
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.