在一个轴上设置刻度边距(ggplot2)

时间:2013-05-30 15:06:15

标签: r ggplot2

当绘制带有长名称的分类变量(例如箱形图)的图形时,必须使用ggplot2中的theme命令移动名称,然后可以设置轴标记和文本之间的距离然而,当仅在一个轴上需要一些时间时,该距离反映在两个轴上。下面是一些示例代码:

df<-data.frame(X=rnorm(50,0,10),Y=c(rep("Some Text",25),rep("Some Larger Text That Takes Space",25)))

    #classical boxplots
ggplot(df,aes(x=Y,y=X))+geom_boxplot()+theme(axis.text=element_text(size=20),axis.text.x=element_text(angle=45))
    #the x axis labels need to be shifted downwards
ggplot(df,aes(x=Y,y=X))+geom_boxplot()+theme(axis.text=element_text(size=20),axis.text.x=element_text(angle=45),axis.ticks.margin=unit(4,"cm"))
    #now they are shifted but there is unnecessary space on the y-axis

我们如何设置axis.ticks.margin仅对一个轴起作用?

1 个答案:

答案 0 :(得分:2)

试试这个例子:

  library(grid)
  axis.ticks.margin=unit(c(4,-4),'cm'))

因此,ggplot2调用变为:

ggplot(df,aes(x=Y,y=X))+
  geom_boxplot()+
  theme(axis.text=element_text(size=20),
        axis.text.x=element_text(angle=45),
        axis.ticks.margin=unit(c(4,-4),'cm'))