2014-02-05 9 views
6

Ich bereite eine Zahl für eine Veröffentlichung vor. Ich entferne die x-Beschriftung, indem ich xlab("") einstelle, aber ggplot2 produziert ein Leerzeichen, anstatt die Beschriftung vollständig zu entfernen. Wie kann ich den Leerraum (im folgenden Diagramm durch ein rotes Rechteck markiert) entfernen?Wie man Whitespace in einem ggplot2 Anschlag loswerden?

enter image description here

Der vollständige Code:

ggplot(data, aes(x=Celltype, y=Mean, fill=factor(Dose), label=p.stars)) + 
    geom_bar(stat = "identity", position = position_dodge(width=0.9), aes(group=Dose)) + 
    geom_errorbar(aes(ymin = Mean - SEM, ymax = Mean + SEM), stat = "identity", position = position_dodge(width=0.9), width=0.25) + 
    geom_text(aes(y = Mean + SEM), size = 5, position = position_dodge(width=0.9), hjust = .5, vjust = -1) + 
    xlab("") + 
    ylab("Concentration") + 
    scale_fill_grey(name = "Dose") + 
    theme_bw() 
+0

Versuchen Sie 'xlab (NULL)' – hadley

Antwort

5

Verwenden Sie theme(), um den Platz für den X-Achsentitel zu entfernen. Wenn Sie xlab("") einstellen, ist noch Platz für diesen Titel vorhanden.

+ theme(axis.title.x=element_blank()) 
5

Haben Sie versucht plot.margin?

library(grid) 
ggplot(data, aes(x=Celltype, y=Mean, fill=factor(Dose), label=p.stars)) + 
    geom_bar(stat = "identity", position = position_dodge(width=0.9), aes(group=Dose)) + 
    geom_errorbar(aes(ymin = Mean - SEM, ymax = Mean + SEM), stat = "identity", position = position_dodge(width=0.9), width=0.25) + 
    geom_text(aes(y = Mean + SEM), size = 5, position = position_dodge(width=0.9), hjust = .5, vjust = -1) + 
    xlab("") + 
    ylab("Concentration") + 
    scale_fill_grey(name = "Dose") + 
    theme_bw() + 
    theme(plot.margin = unit(c(1,1,0,1), "cm")) # ("left", "right", "bottom", "top") 
2

diese Funktion versuchen: einmal erstellt

savepdf <- function(file, width=16, height=10) { 
      fname <- paste("figures/",file,".pdf",sep="") 
      pdf(fname, width=width/2.54, height=height/2.54, 
       pointsize=10) 
      par(mgp=c(2.2,0.45,0), tcl=-0.4, mar=c(3.3,3.6,1.1,1.1)) 
} 

Sie können auch den Leerraum in der PDF-Datei beschneiden. In Unix ist das System Befehl:

pdfcrop filename.pdf filename.pdf 

pdfcrop funktioniert auf Mac die Standard-LaTeX-Distribution zur Verfügung gestellt (MacTEX oder texlive) installiert ist. Natürlich kann dieser Befehl in R wie folgt ausgeführt werden:

system(paste("pdfcrop", filename, filename))