如何使 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)
最佳答案
检查 barplot()
的返回值(通过阅读 ?barplot
)。在那里,我们发现条形的中点由函数作为向量返回。因此,只需分配返回的对象(此处为对象 bar
),然后在调用 axis()
时使用它来定位刻度线。
在 axis()
调用中,请注意我们同时指定 labels
参数 和 at
参数, at
设置为存储在 bar
中的条形中点。 las = 2
用于将标签相对于轴旋转,cex.axis = 0.6
用于减小标签尺寸。
您问题的第二部分由 title()
和 line
参数处理。首先请注意,当您设置 mar
参数时,您将边距大小设置为“行”,因此边 1(底部)的边距为 15 行。 title()
中的 line
参数指定要绘制轴标签的边缘线。
把这个和我们有一个修改过的例子放在一起:
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)
产生:
关于r - 在 r 中的条形图中居中条形标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11815590/