2010-12-10 22 views
15

En R, I reunió un error de funcionamiento de la siguiente manera:"Error en plot.new(): márgenes figura demasiado grande"

> png("p3_sa_para.png", 4, 2) 
> par(mfrow=c(1,2)) 
> plot(c(1:10), ylab="Beta",xlab="Iteration") 
Error in plot.new() : figure margins too large 
> plot(c(1:10), ylab="Gamma",xlab="Iteration") 
Error in plot.new() : figure margins too large 
> dev.off() 
X11cairo 
     2 

ya he hecho el tamaño de la imagen pequeña para ser 4 por 2, ¿por qué todavía se queja de "márgenes de figura demasiado grandes"? ¿Cómo puedo resolver este problema con png?

Es extraño que si cambio png a pdf, entonces funcionará. También me pregunto por qué?

¡Gracias y saludos!

+6

, se ahorrará mucha molestia si lee la ayuda de las funciones R que está utilizando. Qué 'ancho' y' alto' están en un dispositivo 'png' está claramente indicado en'? Png' –

+5

@gavin No estoy de acuerdo, me encontré con un problema exacto y lo primero que busqué fue ayuda para la trama y luego ayuda para par , y después de toda la información inútil, fui por última vez. La ayuda es buena solo cuando tienes una idea de dónde debes mirar. –

+2

@Tg lo lógico en una situación en la que se obtiene un error es desglosarlo. Si la trama funciona sin 'png()' sabemos que el problema radica en 'png()'. Si eliminar 'png()' no hace diferencia, hemos reducido el alcance del problema. No debería haber ninguna necesidad real de agitarse leyendo varios archivos de ayuda, etc. para cosas como esta, * si * adopta un enfoque lógico para resolver el problema, aislar dónde está el problema y luego leer el archivo de ayuda correspondiente. ¿Estás en desacuerdo sobre la necesidad de leer la ayuda o alguna otra cosa? –

Respuesta

23

La función png() utiliza píxeles no pulgadas, así que trata de algo así como

png("p3_sa_para.png", 640, 480) 

Y para responder a su segunda pregunta, sí, pdf() utiliza pulgadas debido a un formato de gráficos vectoriales no tiene noción de píxeles. Las funciones help(png) y help(pdf) son tus amigos.

7

El problema simplemente puede surgir del uso de un determinado IDE. Estaba usando Rstudio, y tengo un montón de errores. Mi mismo código exacto funcionó bien en la consola.

3

Este es un problema común para el trazado especialmente cuando se utiliza el IDE que tiene un lugar para generar y mostrar la trama, pensaron que es un problema general y hay una lógica detrás de esto: cuando cuentas R para trazar algo, primero miro los datos y luego miro el área que tiene a disposición para que pueda hacer el trazado.

El png() y comandos similares:

En el caso de que dieron la trama de un área de píxeles de 4 por 2 a trazar, así que se puede resolver mediante el aumento de la zona en un tamaño que puede caber tu trama (Como Dirk Eddelbuettel mentioned)

En caso de IDE

Esto es mucho más simple en la mayoría de los casos, simplemente aumentar el área de trazado arrastrando los márgenes y luego volver a ejecutar su código (cerrar cualquier par() si tiene alguna abierta antes y cree una nueva) enter image description here

Cuestiones relacionadas