2015-09-24 70 views
2

我想在此條形圖中更改「豐富」一詞的位置。我希望該單詞與其他標籤的第一個單詞的位置一致,即放置在頂行而不是底行。如何更改ggplot中條形圖中x軸文本的位置?

p0 <- 
    ggplot(lineshift, aes(x=name, y=value, fill=factor(product))) + 
    geom_bar(stat="identity", position="dodge", width=0.8) + 

    geom_text(aes(x=name, y=value, ymax=value, label=round(value), 
      hjust=0.5, vjust=-0.5), 
     position = position_dodge(width=0.8)) + 

    scale_fill_manual(values=c("blue", "red"), 
       name="Treatment", 
       breaks=c(1, 2), 
       labels=c("A", "B")) + 

    xlab("Biodiversity") + 
    ylab("Relative occurences (%)") + 

    scale_y_continuous(expand=c(0.0,0.5), 
       limits=c(0, 71), 
       breaks=c(0,10,20,30,40,50,60,70), 
       labels=c("0","10","20","30","40","50","60","70")) + 
    scale_x_discrete(limits=c("Biodiversity of tropical lowland rainforest", "Species composition in understorey", "Richness"), 
       labels = sapply(strwrap(as.character(lineshift$name), width=30, simplify=F), paste, collapse="\n")) + 

    theme_bw() + 
    theme(legend.position=c(0.9,0.9)) + 
    theme(legend.title=element_blank()) + 
    theme(axis.title.x = element_text(vjust=0.1,face="bold", size=16), 
    axis.text.x = element_text(vjust=0.1, size=14, angle=0))+ 
    theme(axis.title.y = element_text(angle=90, vjust=0.70, face="bold", size=18), 
    axis.text.y = element_text(size=14)) + 
    theme(panel.grid.minor=element_blank(), panel.grid.major=element_blank()) + 
    theme(panel.border = element_rect(size=2, colour = "black", fill=NA, linetype=1)) + 
    theme(plot.margin = unit(c(0.3,0.4,0.28,0.0),"lines")) 

enter image description here

這是數據:

structure(list(product = c(1L, 1L, 1L, 2L, 2L, 2L), name = structure(c(1L, 
3L, 2L, 1L, 3L, 2L), .Label = c("Biodiversity of tropical lowland rainforest", 
"Richness", "Species composition in understorey"), class = "factor"), 
value = c(62.96, 22.22, 14.81, 60, 40, 0), treatment = structure(c(1L, 
1L, 1L, 2L, 2L, 2L), .Label = c("A", "B"), class = "factor")), .Names = c("product", 
"name", "value", "treatment"), class = "data.frame", row.names = c(NA, 
-6L)) 

任何意見非常感謝。

回答

3

您可以在主題更改爲vjust x軸的文字:

p0 + theme(axis.text.x=element_text(vjust=1,size=14)) 

enter image description here

+0

輝煌。謝謝。 – tabtimm