Quiero usar el hexbin del bioconductor (que puedo hacer) para generar un gráfico que llene toda la región de visualización (png): sin ejes, sin etiquetas, sin fondo, sin nada.
¿No sería más fácil crear un diagrama hexbin y recortarlo en un editor de imágenes?
joran
3
intentartheme_void()
Brian D
Respuestas:
182
Según mi comentario en la respuesta de Chase, puedes eliminar muchas de estas cosas 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 del .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 , optsha quedado en desuso. En su lugar, use theme()y reemplace theme_blank()con element_blank()).
Comentario al pasar: en algunos casos, theme(axis.ticks=element_blank())no funciona tan bien theme(axis.ticks.x=element_blank()), probablemente sea un error temporal en alguna parte (tengo mi propio conjunto de temas, luego intento anular: solo axis.ticks.xy axis.ticks.yhacer el trabajo)
PatrickT
106
Re: cambio de opciones a tema, etc. (para gente perezosa):
ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut)) + theme_void() + theme(legend.position="none", panel.background = element_rect(fill="grey80"), plot.background = element_rect(fill="red"))sugiere que no es 100% vacío
baptiste
Los laboratorios (x = "", y = "") no parecen eliminar los ejes, solo las etiquetas.
miratrix
@miratrix lo siento, mi error. Actualizado.
luchonacho
55
@luchonacho Usa labs(x="",y="")hojas de espacio de títulos de eje porque en realidad hay títulos, simplemente no tienen signos. Para eliminar los títulos de los ejes y el espacio para ellos, es mejor usarlos+ theme(axis.title = element_blank())
Me doy cuenta de que todavía no tienes privilegios de edición, pero si ves otras respuestas mías de ggplot2 que necesitan ser actualizadas re: opts () no dudes en sugerir una edición. Recibiré una notificación y puedo incorporarla yo mismo.
theme_void()
Respuestas:
Según mi comentario en la respuesta de Chase, puedes eliminar muchas de estas cosas usando
element_blank
:Parece que todavía hay un pequeño margen alrededor del borde del .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
ha quedado en desuso. En su lugar, usetheme()
y reemplacetheme_blank()
conelement_blank()
).fuente
theme(axis.ticks=element_blank())
no funciona tan bientheme(axis.ticks.x=element_blank())
, probablemente sea un error temporal en alguna parte (tengo mi propio conjunto de temas, luego intento anular: soloaxis.ticks.x
yaxis.ticks.y
hacer el trabajo)Re: cambio de opciones a tema, etc. (para gente perezosa):
fuente
Las respuestas actuales son incompletas o ineficientes. Aquí está (quizás) la forma más corta de lograr el resultado (usando
theme_void()
:El resultado es:
Si está interesado en eliminar las etiquetas , ¿
labs(x="", y="")
funciona?fuente
ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut)) + theme_void() + theme(legend.position="none", panel.background = element_rect(fill="grey80"), plot.background = element_rect(fill="red"))
sugiere que no es 100% vacíolabs(x="",y="")
hojas de espacio de títulos de eje porque en realidad hay títulos, simplemente no tienen signos. Para eliminar los títulos de los ejes y el espacio para ellos, es mejor usarlos+ theme(axis.title = element_blank())
labs(x = NULL)
oxlab(NULL)
son otras formas.en
ggplot2 >= 0.9.2
usofuente
fuente
Error in UseMethod("grid.draw") : no applicable method for 'grid.draw' applied to an object of class "NULL"
¿Hace esto lo que quieres?
fuente