Galat di plot.new (): margin gambar terlalu besar, Plot sebar

109

Saya telah mencari solusi di pertanyaan yang berbeda dan saya telah mencoba apa yang disarankan tetapi saya belum menemukan solusi untuk membuatnya bekerja.

Setiap kali saya ingin menjalankan kode ini, selalu tertulis:

Kesalahan dalam plot.new (): margin gambar terlalu besar

dan saya tidak tahu bagaimana cara memperbaikinya. Ini kode saya:

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")

Apa yang dapat saya?

pengguna3530361
sumber
2
Margin tampak terlalu besar untuk gambar Anda. Ini bisa terjadi jika Anda memiliki jendela plot kecil. Bagaimanapun, deskripsi Anda tidak cukup untuk mendiagnosis masalah. Kami dapat menggunakan contoh yang dapat direproduksi atau tangkapan layar dari sesi R Anda dengan jendela plot.
Roman Luštrik
Saya kasus saya, itu membantu untuk men-debug dengan subset kecil dari data yang akan diplot seperti plot(df[1,1:3], df2[1,1:3])- dan kemudian saya menyadari bahwa apa yang sebenarnya ingin saya lakukan adalah plot(unlist(df[1,1:3]), unlist(df2[1,1:3]))juga melihat: stackoverflow.com/a/17074060/6018688
fabianegli

Jawaban:

164

Setiap kali Anda membuat plot, Anda mungkin mendapatkan kesalahan ini - " Error in plot.new() : figure margins too large". Untuk menghindari kesalahan seperti itu, Anda dapat memeriksa par("mar")keluaran terlebih dahulu . Anda harus mendapatkan:

[1] 5.1 4.1 4.1 2.1

Untuk mengubah tulisan itu:

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

Ini harus memperbaiki kesalahan tersebut. Atau, Anda dapat mengubah nilainya.

Semoga ini berhasil untuk Anda.

Tamu R
sumber
2
bagaimana Anda tahu persis nilai mana yang ada di dalam margin? Dan mengapa Anda mengatakan bahwa saya harus mendapatkan [1] 5.1 4.1 4.1 2.1 tetapi kemudian Anda meminta saya untuk mengubahnya menjadi semua 1?
Herman Toothrot
2
Saya mengalami masalah yang sama dengan RStudio, dan ketika saya masuk, par("mar")saya mengambil string yang sama persis [1] 5.1 4.1 4.1 2.1sehingga saya masuk par(mar=c(1,1,1,1))tetapi kemudian plot () tidak akan memplot apa pun, jadi saya harus menutup RStudio dan terminal. Setelah membuka kembali RStudio, itu kembali normal.
noobninja
2
Mengalami masalah yang sama di penurunan harga R di RStudio juga. Baik solusi Tamu R atau @noobninja restart tidak memperbaikinya untuk saya.
SC.
Anda mendapatkan kesalahan ini karena masalah tata letak RStudio UI, bukan ada yang salah dengan kodenya. Jawaban kedua memperbaikinya untuk saya.
Nicole Sullivan
1
@Nicole Sullivan Saya mendapat kesalahan ini juga tanpa RStudio. Saya melakukan seperti yang dijelaskan dan berhasil. Terima kasih @djhurio!
Gwang-Jin Kim
106

Ini bisa terjadi jika panel plot Anda di RStudio terlalu kecil untuk margin plot yang Anda coba buat. Cobalah memperluasnya dan kemudian jalankan kode Anda lagi.

RStudio UI menyebabkan kesalahan saat panel plot terlalu kecil untuk menampilkan grafik: RStudio dengan panel plot terlalu kecil

Cukup memperluas panel plot akan memperbaiki bug dan menampilkan grafik: RStudio dengan panel plot diperluas

Csislander
sumber
5
Ini memang berhasil .. cukup memperluas area plot membantu
Jiapeng Zhang
3
Ya, mengubah ukuran panel di RStudio berfungsi. Ini adalah bug RStudio yang disebabkan saat Anda meminimalkan sisi kanan UI dengan menutup panel plot.
Nicole Sullivan
ini benar-benar berfungsi di sebagian besar kasus. ada sebagian kecil kasus di mana margin memang sangat kecil sehingga meskipun Anda memaksimalkan jendela ini, Anda tidak memiliki solusi untuk masalah ini
Dimitrios Zacharatos
27

Meminta dev.off()agar RStudio membuka perangkat grafis baru dengan pengaturan default berfungsi untuk saya. HTH.

PGreen
sumber
1
Bisakah Anda menjelaskan bagaimana melakukan itu?
Swift Arrow
20

Jika Anda mendapatkan pesan ini di RStudio, klik gambar 'sapu' "Kosongkan Semua Plot" di tab Plot dan coba plot () lagi.

Apalagi Jalankan perintahnya

graphics.off()
Prakhar Agarwal
sumber
11
tulis tiga baris inigraphics.off() par("mar") par(mar=c(1,1,1,1))
Hiren
6

Hapus saja plotnya dan coba jalankan kodenya lagi ... Ini berhasil untuk saya

Shravya Mutyapu
sumber
1

Hanya catatan pinggir. Kadang-kadang kesalahan "margin" ini terjadi karena Anda ingin menyimpan gambar beresolusi tinggi (mis. dpi = 300Atau res = 300) di R.
Dalam hal ini, yang perlu Anda lakukan adalah menentukan lebar dan tinggi . (Btw, ggsave() tidak membutuhkan ini.)

Ini menyebabkan kesalahan margin:

# 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()

Ini akan memperbaiki kesalahan margin:

# 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()
Guannan Shen
sumber