160 votes

ggplot2 plot sans axes légendes etc

Je peux très bien gérer la vieille intrigue, mais j'ai du mal à faire quelque chose de très simple dans le monde de ggplot2. Je veux utiliser l'hexbin de bioconductor (ce que je peux faire) pour générer un tracé qui remplit la totalité de la région d'affichage (png) - pas d'axes, pas d'étiquettes, pas de fond, pas de nuthin '. S'il vous plaît, quelqu'un me montre comment.

200voto

joran Points 68079

Selon mon commentaire dans la réponse de Chase, vous pouvez supprimer beaucoup de ces choses en utilisant theme_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 + opts(axis.line=theme_blank(),axis.text.x=theme_blank(),
        axis.text.y=theme_blank(),axis.ticks=theme_blank(),
        axis.title.x=theme_blank(),
        axis.title.y=theme_blank(),legend.position="none",
        panel.background=theme_blank(),panel.border=theme_blank(),panel.grid.major=theme_blank(),
        panel.grid.minor=theme_blank(),plot.background=theme_blank())
 

Il semble qu'il reste encore une petite marge autour du fichier .png obtenu lorsque je sauvegarde ce fichier. Peut-être que quelqu'un d'autre sait comment supprimer même ce composant.

Depuis la version 0.9.2 de ggplot2 , opts est obsolète. Utilisez plutôt theme() et remplacez theme_blank() par element_blank() .

115voto

mbjoseph Points 171

Re: changer d'option à thème, etc. (pour les fainéants):

 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())
 

42voto

Jonas Stein Points 851
 'opts' is deprecated.
 

en ggplot2 >= 0.9.2 utilisation

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

3voto

amaurel Points 11
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)

0voto

Chase Points 27342

Est-ce que ça fait ce que tu veux?

  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")
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X