2014-11-04 97 views
1

我已经使用ggplot2软件包在R中创建了一些数据的缺口盒图。我有一个问题,即x轴元素文本使我的组标签重叠,这是我不想要的。需要支持格式化x轴组标签以不重叠

我也不想旋转标签。优选地,我希望每个标签都水平书写,但是继续在“单独”行上。因此,(例如)标签Carboniferous Lst。显示为两个单词,第二个单词“石灰石”水平写在石炭纪下方。我无法缩小字体大小,因为读起来太难了。

有谁知道在R的ggplot中是否有一个命令来处理这个问题?

很多,非常感谢

达米亚诺

PS:我当前的代码是:

box <- ggplot(AquiProps, aes(Geology, logTRANS)) 

box + geom_boxplot(notch = TRUE) 
    + labs(x = "", y = "Mean log Transmissivity(m2/d)") 
    + theme(axis.title = element_text(face = "bold", size = "12", color = "black"), 
      axis.text = element_text(size = 10, face = "bold", color = "black"), 
      axis.title.y = element_text(vjust = 1), 
      axis.title.x = element_text(vjust = 0.005)) 

我想我需要改变在axis.title.x = element_text命令的东西? ?!

+0

“AquiProps”是R中的一个内置数据集吗?如果没有,那么你的代码没有数据就没有帮助。如果它是内置的,那么什么包? – jlhoward 2014-11-04 22:25:18

回答

4

是否这样?

# create example 
set.seed(1) 
names <- paste("Carboniferous Species:",1:8) 
df <- data.frame(names=rep(names,each=100),values=rnorm(800)) 

library(ggplot2) 
ggplot(df,aes(x=names,y=values))+ 
    geom_boxplot(notch=TRUE)+ 
    scale_x_discrete(labels=gsub("(Carboniferous)","\\1\n",unique(df$names)))+ 
    theme(axis.title = element_text(face = "bold", size = "12", color = "black"), 
     axis.text = element_text(size = 10, face = "bold", color = "black"), 
     axis.title.y = element_text(vjust = 1), 
     axis.title.x = element_text(vjust = 0.005)) 

上述插入线的代码分解成使用scale_x_discrete(labels=...)轴标签。

你也可以插入该行直接闯入你的数据,使用例如为:

df$names <- gsub("(Carboniferous)","\\1\n",df$names) 

那么你的代码编写会产生上述相同的情节。