2011-06-29 13 views
88

Quiero usar el hexbin del bioconductor (lo cual puedo hacer) para generar un diagrama que llene toda la región de visualización (png) - sin ejes, sin etiquetas, sin fondo, sin nuthin '.trama ggplot2 sin ejes, leyendas, etc.

+1

¿No sería más fácil crear un gráfico hexbin y recortarlo en un editor de imágenes? – joran

Respuesta

1

¿Hace esto lo que quiere?

p <- ggplot(myData, aes(foo, bar)) + geom_whateverGeomYouWant(more = options) + 
p + scale_x_continuous(expand=c(0,0)) + 
scale_y_continuous(expand=c(0,0)) + 
opts(legend.position = "none") 
+0

se deshace de la leyenda, pero los ejes xey, y la cuadrícula de fondo, todavía están allí. – user1320487

+0

@cassiodorus - perdón, lo perdí la primera vez. Dame un poco ... – Chase

+0

Probablemente puedas eliminar muchas de estas cosas usando 'theme_blank' ... – joran

138

Según mi comentario en la respuesta del Chase, se puede eliminar una gran cantidad de este material usando element_blank:

dat <- data.frame(x=runif(10),y=runif(10)) 

p <- ggplot(dat, aes(x=x, y=y)) + 
     geom_point() + 
     scale_x_continuous(expand=c(0,0)) + 
     scale_y_continuous(expand=c(0,0)) 

p + theme(axis.line=element_blank(),axis.text.x=element_blank(), 
      axis.text.y=element_blank(),axis.ticks=element_blank(), 
      axis.title.x=element_blank(), 
      axis.title.y=element_blank(),legend.position="none", 
      panel.background=element_blank(),panel.border=element_blank(),panel.grid.major=element_blank(), 
      panel.grid.minor=element_blank(),plot.background=element_blank()) 

Parece que todavía hay un pequeño margen alrededor del borde de la .png resultante cuando Guardo esto Quizás alguien más sepa cómo eliminar incluso ese componente.

(Nota histórica:.. Desde ggplot2 versión 0.9.2, opts está en desuso lugar de utilizar theme() y reemplazar theme_blank() con element_blank())

+1

¡Muchas gracias! También encontré una solución similar en http://groups.google.com/group/ggplot2/browse_thread/thread/72403c6997b79c3b – user1320487

1
xy <- data.frame(x=1:10, y=10:1) 
plot <- ggplot(data = xy)+geom_point(aes(x = x, y = y)) 
plot 
panel = grid.get("panel-3-3") 

grid.newpage() 
pushViewport(viewport(w=1, h=1, name="layout")) 
pushViewport(viewport(w=1, h=1, name="panel-3-3")) 
upViewport(1) 
upViewport(1) 
grid.draw(panel) 
+0

'Error en UseMethod (" grid.draw "): no se aplicó ningún método para 'grid.draw' a un objeto de la clase "NULL" ' –

+0

grid.ls() muestra la lista de objetos viewport y grob – amaurel

+0

parece que en otra versión de ggplot que estoy usando el nombre del panel es diferente – amaurel

35
'opts' is deprecated. 

en ggplot2 >= 0.9.2 uso

p + theme(legend.position = "none") 
+5

que darse cuenta de que no tiene privilegios de edición aún, pero si ve otras respuestas ggplot2 de mina que necesitan ser re actualización: opta() se sienten libres de sugerir una edición. Recibiré una notificación y puedo incorporarlo yo mismo. – joran

79

Re: cambiando opts al tema, etc. (para la gente perezosa):

theme(axis.line=element_blank(), 
     axis.text.x=element_blank(), 
     axis.text.y=element_blank(), 
     axis.ticks=element_blank(), 
     axis.title.x=element_blank(), 
     axis.title.y=element_blank(), 
     legend.position="none", 
     panel.background=element_blank(), 
     panel.border=element_blank(), 
     panel.grid.major=element_blank(), 
     panel.grid.minor=element_blank(), 
     plot.background=element_blank()) 
22

Las respuestas actuales son incompletas o ineficaces. Aquí es (quizás) el camino más corto para lograr el resultado (usando theme_void():

data(diamonds) # Data example 
ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut)) + 
     theme_void() + theme(legend.position="none") 

El resultado es:

enter image description here


Si usted está interesado sólo en la eliminación de los etiquetas , labs(x="", y="") hace el truco:

ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut)) + 
     labs(x="", y="") 
+0

'ggplot (datos = diamantes, mapeo = aes (x = claridad)) + geom_bar (AES (llenan = corte)) + theme_void() + tema (legend.position = "ninguna", panel.background = element_rect (complete = "grey80"), plot.background = element_rect (complete = "red")) 'sugiere que no es 100% void – baptiste

+0

los laboratorios (x = "", y = "") no aparece para eliminar los ejes , solo las etiquetas. – miratrix

+0

@miratrix lo siento, mi error. Actualizado. – luchonacho

Cuestiones relacionadas