x轴标签与条形图不匹配

时间:2012-01-09 23:19:13

标签: r

您好我正在尝试使用以下代码创建堆叠条形图:

test <- as.matrix(read.csv(file="test4.csv",sep=",",head=TRUE))
test <- test[,2:ncol(test)]
pdf(file="test.pdf", height=4, width=6)
par(lwd = 0.3)
barplot(test, space=0.4, xaxt='n', ann=FALSE)
axis(1, cex.axis=0.25, las=2, at=1:ncol(test), space=0.4, labels=colnames(test))
dev.off()

我得到: enter image description here

如您所见,x轴上的标签与图中的条形不匹配。此外,蜱虫是巨大的。 你们能帮助我美化x轴吗?非常感谢

1 个答案:

答案 0 :(得分:3)

尝试将对barplot()的调用的返回值存储在命名对象中,然后将其传递给at= axis()参数:

xLabLocs <- barplot(test, space=0.4, xaxt='n', ann=FALSE)
axis(1, cex.axis=0.25, las=2, at=xLabLocs, 
     space=0.4, labels=colnames(test))

这可能看起来很奇怪,但Value帮助文件的?barplot部分对此进行了解释:

Value:
     A numeric vector (or matrix, when ‘beside = TRUE’), say ‘mp’,
     giving the coordinates of _all_ the bar midpoints drawn, useful
     for adding to the graph.

你只是假设条形中心的x轴坐标为1:n,其中n是条数,这使得(很容易犯)错误。这不一定是真的,所以对barplot()的单次调用都很好:(a)绘制条形图作为副作用; (b)返回必要的x轴坐标作为其返回值。