web-dev-qa-db-fra.com

ggplot2 plot sans axes, légendes, etc

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 '.

121
user1320487

Selon mon commentaire dans la réponse de Chase, vous pouvez supprimer beaucoup de ces choses 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 reste encore une petite marge autour du bord du fichier .png obtenu lorsque je sauvegarde ce fichier. Peut-être que quelqu'un d'autre sait comment même supprimer ce composant.

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

173
joran

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

Les réponses actuelles sont incomplètes ou inefficaces. Voici (peut-être) le moyen le plus rapide 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:

enter image description here


Si vous souhaitez simplement éliminer les étiquettes , labs(x="", y="") fait l'affaire:

ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut)) + 
      labs(x="", y="")
45
luchonacho
'opts' is deprecated.

dans ggplot2 >= 0.9.2 utiliser

p + theme(legend.position = "none") 
40
Jonas Stein
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)
1
amaurel