2014-02-05 4 views
6

Я готовлю цифру для публикации. Я опускаю ярлык x, установив xlab(""), однако ggplot2 создает пробел вместо полного удаления метки. Как я могу избавиться от пробелов (отмечен красным прямоугольником на рисунке ниже)?Как избавиться от пробелов в сюжете ggplot2?

enter image description here

Полный код:

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

Попробуйте 'xlab (NULL)' ' – hadley

ответ

5

Используйте theme() для удаления пространства, выделенного для заголовка оси x. Когда вы устанавливаете xlab(""), для этого названия еще есть место.

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

Вы пробовали 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

Попробуйте эту функцию:

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

Вы также можете обрезать пробелы в полученном файле в формате PDF после создания. В Unix командной системы:

pdfcrop filename.pdf filename.pdf 

pdfcrop делает работу на Mac при условии, что стандартный дистрибутив LaTeX (MacTEX или texlive) установлен. Конечно, эта команда может быть выполнена в R следующим образом:

system(paste("pdfcrop", filename, filename)) 
Смежные вопросы