r - 在 r 中的条形图中居中条形标签

标签 r plot

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

enter image description here

最佳答案

检查 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)

产生:

barplot produced using example code

关于r - 在 r 中的条形图中居中条形标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11815590/

相关文章:

excel - 将矩阵导出到 Excel

R:从列表中计算mean()

r - 在 R 中使用 rpart 函数时,在 ExtractVars 中获取无效的模型公式

python - 组织模式、源代码块、结果向量

r - 连接断开时如何在PowerShell中对R脚本自动重试

plot - 如何改进以下 gnu 图?

python - 在一个图中绘制来自多个 Pandas 数据框的数据

python - 在 networkx 中绘制一个非常大的图

python - Pandas scatter_matrix : Labels vertical (x) and horizontal (y) without being cut-off

python - 在 Matplotlib 中更改网格间隔并指定刻度标签