3

如何使 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)

在此处输入图像描述

4

1 回答 1

10

查看barplot()(通过阅读?barplot)的返回值。在那里,我们发现条形的中点由函数作为向量返回。因此,分配返回的对象(此处为 object bar)然后在调用中使用它axis()来定位刻度线是一件简单的事情。

axis()调用中,请注意我们同时指定了参数labels参数at,并at设置为存储在中的条形中点barlas = 2用于相对于轴旋转标签,并cex.axis = 0.6用于减小标签大小。

您问题的第二部分由title()论点line处理。首先请注意,当您设置mar参数时,您在“行”中设置边距大小,因此边 1(底部)的边距为 15 行。line参数 intitle()指定要绘制轴标签的边缘线。

把它和一个修改过的例子一起放在一起,我们有:

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)

产生:

使用示例代码生成的条形图

于 2012-08-05T10:24:10.560 回答