Je veux utiliser l'hexbin de bioconductor (ce que je peux faire) pour générer un tracé qui remplit toute la région d'affichage (png) - pas d'axes, pas d'étiquettes, pas d'arrière-plan, pas de nuthin '.
Ne serait-il pas plus facile de créer un graphique hexbin et de le recadrer dans un éditeur d'images?
joran
3
essayertheme_void()
Brian D
Réponses:
182
Selon mon commentaire dans la réponse de Chase, vous pouvez supprimer beaucoup de ces éléments en utilisant 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())
Il semble qu'il y ait encore une petite marge autour du bord du .png résultant lorsque j'enregistre ceci. Peut-être que quelqu'un d'autre sait comment supprimer même ce composant.
(Note historique: depuis la version 0.9.2 de ggplot2 , optsest obsolète. À la place, utilisez theme()et remplacez theme_blank()par element_blank().)
Commentaire en passant: Dans certains cas, theme(axis.ticks=element_blank())ne fonctionne pas aussi bien que theme(axis.ticks.x=element_blank()), probablement un bug temporaire quelque part (j'ai mon propre jeu de thèmes, puis j'essaye de remplacer: seulement axis.ticks.xet axis.ticks.yfaire le travail.)
Les réponses actuelles sont soit incomplètes, soit inefficaces. Voici (peut-être) le moyen le plus court d'atteindre le résultat (en utilisant theme_void():
data(diamonds)# Data example
ggplot(data = diamonds, mapping = aes(x = clarity))+ geom_bar(aes(fill = cut))+
theme_void()+ theme(legend.position="none")
Le résultat est:
Si vous souhaitez simplement éliminer les étiquettes , faites labs(x="", y="")-le:
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"))suggère que ce n'est pas 100% nul
baptiste
Les laboratoires (x = "", y = "") ne semblent pas supprimer les axes, juste les étiquettes.
miratrix
@miratrix désolé, mon erreur. Actualisé.
luchonacho
5
@luchonacho Utiliser labs(x="",y="")laisse de l'espace pour les titres des axes car en fait il y a des titres, ils sont juste sans signes. Pour supprimer les titres des axes et l'espace pour eux, il est préférable d'utiliser+ theme(axis.title = element_blank())
Je sais que vous n'avez pas encore de privilèges d'édition, mais si vous repérez d'autres réponses ggplot2 qui doivent être mises à jour, re: opts (), n'hésitez pas à suggérer une modification. Je recevrai une notification et je pourrai l'intégrer moi-même.
theme_void()
Réponses:
Selon mon commentaire dans la réponse de Chase, vous pouvez supprimer beaucoup de ces éléments en utilisant
element_blank
:Il semble qu'il y ait encore une petite marge autour du bord du .png résultant lorsque j'enregistre ceci. Peut-être que quelqu'un d'autre sait comment supprimer même ce composant.
(Note historique: depuis la version 0.9.2 de ggplot2 ,
opts
est obsolète. À la place, utiliseztheme()
et remplaceztheme_blank()
parelement_blank()
.)la source
theme(axis.ticks=element_blank())
ne fonctionne pas aussi bien quetheme(axis.ticks.x=element_blank())
, probablement un bug temporaire quelque part (j'ai mon propre jeu de thèmes, puis j'essaye de remplacer: seulementaxis.ticks.x
etaxis.ticks.y
faire le travail.)Re: changer le thème, etc. (pour les paresseux):
la source
Les réponses actuelles sont soit incomplètes, soit inefficaces. Voici (peut-être) le moyen le plus court d'atteindre le résultat (en utilisant
theme_void()
:Le résultat est:
Si vous souhaitez simplement éliminer les étiquettes , faites
labs(x="", y="")
-le:la source
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"))
suggère que ce n'est pas 100% nullabs(x="",y="")
laisse de l'espace pour les titres des axes car en fait il y a des titres, ils sont juste sans signes. Pour supprimer les titres des axes et l'espace pour eux, il est préférable d'utiliser+ theme(axis.title = element_blank())
labs(x = NULL)
ouxlab(NULL)
sont d'autres moyens.en cours d'
ggplot2 >= 0.9.2
utilisationla source
la source
Error in UseMethod("grid.draw") : no applicable method for 'grid.draw' applied to an object of class "NULL"
Est-ce que cela fait ce que vous voulez?
la source