Error en plot.new (): márgenes de figura demasiado grandes, diagrama de dispersión

107

Busqué en diferentes preguntas una solución y probé lo que se sugirió, pero no encontré una solución para que funcione.

Cada vez que quiero ejecutar este código, siempre dice:

Error en plot.new (): márgenes de figura demasiado grandes

y no sé cómo solucionarlo. Aquí está mi código:

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

¿Que puedo hacer?

user3530361
fuente
2
Los márgenes parecen ser demasiado grandes para su imagen. Esto puede suceder si tiene una ventana de trazado pequeña. En cualquier caso, su descripción es insuficiente para diagnosticar el problema. Podríamos usar un ejemplo reproducible o una captura de pantalla de su sesión de R con la ventana del gráfico.
Roman Luštrik
En mi caso, ayudó a depurar con un pequeño subconjunto de los datos que se trazarían como plot(df[1,1:3], df2[1,1:3]), y luego me di cuenta de que lo que realmente quería hacer era plot(unlist(df[1,1:3]), unlist(df2[1,1:3]))ver también: stackoverflow.com/a/17074060/6018688
fabianegli

Respuestas:

162

Cada vez que crea gráficos, puede aparecer este error: " Error in plot.new() : figure margins too large". Para evitar tales errores, primero puede verificar la par("mar")salida. Deberías obtener:

[1] 5.1 4.1 4.1 2.1

Para cambiar esa escritura:

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

Esto debería rectificar el error. De lo contrario, puede cambiar los valores en consecuencia.

Espero que esto funcione para usted.

Invitado R
fuente
2
¿Cómo sabe exactamente qué valores están dentro de los márgenes? ¿Y por qué dices que debería obtener [1] 5.1 4.1 4.1 2.1 pero luego me dices que lo cambie a todos los 1?
Herman Toothrot
2
Me encontré con el mismo problema con RStudio, y cuando entré par("mar")recuperé la misma cadena exacta, [1] 5.1 4.1 4.1 2.1así que entré par(mar=c(1,1,1,1))pero luego plot () no trazaría nada, así que tuve que cerrar tanto RStudio como la terminal. Después de reabrir RStudio, volvió a la normalidad.
noobninja
2
También se encuentra con el mismo problema en R markdown en RStudio. Sin embargo, ni la solución de Guest R ni el reinicio de @noobninja me lo arreglaron.
SC.
Recibe este error debido a un problema de diseño de la interfaz de usuario de RStudio, no a un problema con el código. La segunda respuesta me lo arregló.
Nicole Sullivan
1
@Nicole Sullivan Recibí este error también sin RStudio. Hice lo descrito y funciona. ¡Gracias @djhurio!
Gwang-Jin Kim
105

Esto puede suceder cuando su panel de gráfico en RStudio es demasiado pequeño para los márgenes del gráfico que está intentando crear. Intente expandirlo y luego ejecute su código nuevamente.

La interfaz de usuario de RStudio provoca un error cuando el panel de trazado es demasiado pequeño para mostrar el gráfico: RStudio con el panel de trazado demasiado pequeño

Simplemente expandir el panel de trazado corrige el error y muestra el gráfico: RStudio con el panel de gráficos ampliado

Csislander
fuente
5
De hecho funciona ... simplemente expandir el área de la trama ayuda
Jiapeng Zhang
3
Sí, cambiar el tamaño de los paneles en RStudio funciona. Es un error de RStudio causado cuando minimiza el lado derecho de la interfaz de usuario deslizando el panel de trazado para cerrarlo.
Nicole Sullivan
esto realmente funciona en la mayoría de los casos. Hay una pequeña minoría de casos en los que los márgenes son tan pequeños que incluso si maximiza esta ventana, no tiene solución a este problema
Dimitrios Zacharatos
27

Invocar dev.off()para que RStudio abra un nuevo dispositivo gráfico con la configuración predeterminada funcionó para mí. HTH.

PGreen
fuente
1
¿Podría explicarnos cómo se hace?
Swift Arrow
20

Si recibe este mensaje en RStudio, haga clic en la figura de 'palo de escoba' "Borrar todas las parcelas" en la pestaña Parcelas y vuelva a intentarlo.

Además ejecute el comando

graphics.off()
Prakhar Agarwal
fuente
11
escribe estas tres líneasgraphics.off() par("mar") par(mar=c(1,1,1,1))
Hiren
6

Simplemente borre los gráficos e intente ejecutar el código nuevamente ... Me funcionó

Shravya Mutyapu
fuente
1

Solo una nota al margen. A veces, este error de "margen" se produce porque desea guardar una figura de alta resolución (por ejemplo, dpi = 300o res = 300) en R.
En este caso, lo que debe hacer es especificar el ancho y el alto . (Por cierto, ggsave() no requiere esto).

Esto provoca el error de margen:

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

Esto solucionará el error de margen:

# 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
fuente