Помилка 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.