如何将x轴上的标签居中以与条形图匹配?另外,如何将x轴标签进一步向下定位,使其不被x轴标签遮挡?谢谢!
par(mar= c(15,4,4,2) + 0.1)
barplot(58:1,xaxt="n",xlab="",ylab="Frequency", col=gray(5:0/5))
axis(1, labels=FALSE)
text(1:58, par("usr")[3] - 0.25, srt = 90, adj = 1,
labels = rep("Long Species Name",58), xpd = TRUE)
mtext(1, text = "Species", line=6)
答案 0 :(得分:10)
查看barplot()
的返回值(阅读?barplot
)。在那里我们发现条形的中点由函数作为向量返回。因此,分配返回的对象(此处为对象bar
)然后在调用axis()
时使用它来定位刻度线是一件简单的事情。
在axis()
来电中,请注意我们同时指定labels
参数和 at
参数,并将at
设置为条形中点存储在bar
中。 las = 2
用于相对于轴旋转标签,cex.axis = 0.6
用于缩小标签尺寸。
问题的第二部分由title()
和line
参数处理。首先请注意,当您设置mar
参数时,您要在“行”中设置边距大小,因此第1面(底部)的边距为15行。 line
中的title()
参数指定要绘制轴标签的边距线。
将这完全与我们的修改示例相结合:
op <- par(mar= c(15,4,4,2) + 0.1)
bar <- barplot(58:1, xaxt="n", xlab="", ylab="Frequency", col=gray(5:0/5))
axis(1, labels = paste("Long Species Name", 1:58), at = bar,
las = 2, cex.axis = 0.6)
title(xlab = "Species", line=11)
par(op)
产生: