เกิดข้อผิดพลาดใน plot.new (): ระยะขอบของรูปใหญ่เกินไป, Scatter plot


109

ฉันได้ดูคำถามต่างๆเพื่อหาวิธีแก้ปัญหาและฉันได้ลองทำตามคำแนะนำแล้ว แต่ฉันไม่พบวิธีแก้ปัญหาที่จะทำให้มันใช้งานได้

ทุกครั้งที่ฉันต้องการเรียกใช้รหัสนี้มักจะพูดว่า:

ข้อผิดพลาดใน 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
อาจเกิดข้อผิดพลาด
Calimo

2
ระยะขอบดูเหมือนจะใหญ่เกินไปสำหรับรูปภาพของคุณ สิ่งนี้สามารถเกิดขึ้นได้หากคุณมีหน้าต่างพล็อตเล็ก ๆ ไม่ว่าในกรณีใดคำอธิบายของคุณไม่เพียงพอที่จะวินิจฉัยปัญหา เราสามารถใช้ตัวอย่างหรือภาพหน้าจอที่ทำซ้ำได้ของเซสชัน R ของคุณกับหน้าต่างพล็อต
Roman Luštrik

ฉันเป็นกรณีของฉันมันช่วยในการดีบักด้วยชุดข้อมูลย่อยเล็ก ๆ ที่จะพล็อตเช่น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 ทั้งหมด?
Herman Toothrot

3
ฉันพบปัญหาเดียวกันกับ 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 markdown ใน RStudio เช่นกัน ทั้งวิธีแก้ปัญหาของ Guest R หรือการรีสตาร์ท @noobninja ไม่ได้รับการแก้ไขสำหรับฉัน
.

คุณได้รับข้อผิดพลาดนี้เนื่องจากปัญหาเค้าโครง UI ของ RStudio ไม่ใช่สิ่งผิดปกติกับโค้ด คำตอบที่สองแก้ไขให้ฉัน
Nicole Sullivan

1
@Nicole Sullivan ฉันได้รับข้อผิดพลาดนี้โดยไม่มี RStudio ฉันทำตามที่อธิบายไว้และได้ผล ขอบคุณ @djhurio!
Gwang-Jin Kim

106

สิ่งนี้สามารถเกิดขึ้นได้เมื่อแผงพล็อตของคุณใน RStudio เล็กเกินไปสำหรับระยะขอบของพล็อตที่คุณพยายามสร้าง ลองขยายแล้วเรียกใช้รหัสของคุณอีกครั้ง

RStudio UI ทำให้เกิดข้อผิดพลาดเมื่อแผงพล็อตมีขนาดเล็กเกินไปที่จะแสดงแผนภูมิ: RStudio ที่มีแผงพล็อตเล็กเกินไป

เพียงแค่ขยายแผงพล็อตจะแก้ไขข้อบกพร่องและแสดงแผนภูมิ: RStudio พร้อมขยายแผงพล็อต


5
มันได้ผลจริง .. แค่ขยายพื้นที่แปลงก็ช่วยได้
Jiapeng Zhang

3
ใช่การปรับขนาดแผงใน RStudio ใช้งานได้ เป็นจุดบกพร่องของ RStudio ที่เกิดขึ้นเมื่อคุณย่อส่วนด้านขวาของ UI ให้เล็กที่สุดโดยการเลื่อนปิดแผงพล็อต
Nicole Sullivan

สิ่งนี้ใช้งานได้จริงในกรณีส่วนใหญ่ มีกรณีส่วนน้อยเล็กน้อยที่ระยะขอบมีขนาดเล็กมากแม้ว่าคุณจะขยายหน้าต่างนี้ให้ใหญ่สุด แต่ก็ไม่มีทางแก้ไขปัญหานี้ได้
Dimitrios Zacharatos

27

การเรียกร้องdev.off()ให้ RStudio เปิดอุปกรณ์กราฟิกใหม่โดยใช้การตั้งค่าเริ่มต้นสำหรับฉัน HTH.


1
คุณช่วยอธิบายวิธีการได้ไหม
Swift Arrow

20

หากคุณได้รับข้อความนี้ใน RStudio ให้คลิกที่รูป "ไม้กวาด" "ล้างพล็อตทั้งหมด" ในแท็บพล็อตแล้วลองลงจุด () อีกครั้ง

ยิ่งไปกว่านั้นดำเนินการคำสั่ง

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()
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.