2011-06-28 11 views
7

Estoy intentando crear una matriz de gráficos, pero yo quiero la esquina superior izquierda para estar en blanco. Así que estoy usando:error en la trama(): Figura márgenes demasiado grandes

frame() 

A lo que responde R:

error en frame(): Figura márgenes demasiado grandes

estoy usando las dos líneas siguientes para crear mi diseño :

plotIDs <- matrix(c(1:16), 4, 4, byrow = T); 
layout(plotIDs, widths = c(0.5,1,1,1,1), heights = c(0.5,1,1,1,1)); 

y esto me da la siguiente distribución:

4 by 4 layout with first row and col at half height

si yo emito frame() me sale el error anterior. ¿Qué estoy haciendo mal? No veo ninguna forma de especificar una altura o un ancho para el comando frame() (solo un alias para plot.new())?

Respuesta

9

El mensaje significa que los márgenes de la figura son demasiado grandes y no dejan suficiente espacio para la trama.

intente reducir el margen:

op <- par(mar = par("mar")/2) 
plot.new() ## this is optional for this example 
plot(1:10) 
par(op) ## tidy up to restore the default par setting 

Puede comenzar con el marco() o plot.new(), o simplemente trazar en el primer panel. Tenga en cuenta que deberá considerar qué es una configuración de margen adecuada para cada uno de sus paneles diferentes, y ajustar los tamaños de las etiquetas, etc.

Para un panel totalmente en blanco, que también podría matar al margen por completo:

op <- par(mar = rep(0, 4)) 
plot.new() 
par(op) 
7

se puede dejar en blanco el uso de paneles de diseño por tener un 0 en la matriz, por lo que si en lugar de utilizar doce y quince 1:16, entonces el primer panel estará en blanco sin necesidad de omitir. Por supuesto, será necesario establecer márgenes y cex para el resto de los paneles.

+0

esa es una respuesta más perspicaz que la mía – mdsumner

+0

@mdsumner, no sé que la mía es más perspicaz, es un trabajo rápido, pero usted dio más detalles sobre lo que realmente estaba causando el error y qué hacer al respecto (que con mi trabajo alrededor todavía se necesita para las tramas reales). –

+0

Es cierto y ahora has proporcionado mejores comentarios :) – mdsumner

Cuestiones relacionadas