我正在尝试创建一个旋转条形图,其中 y 轴为年份。某些年份有一个值(即,一个条),其余年份为零。
由于某种原因,当我添加带有年份的 y 轴时,条形图与值反射(reflect)的年份之间不匹配。如果有人能解释为什么会发生这种情况以及如何解决它,我将不胜感激。
这是我的数据的子集:
x <- c(0, 0, 0, 0, 0, 0, 0, 1.82, 0, 0, 0, 0, 0, 1.04, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.28, 0, 0, 0, 0, 0, 0, 0, 0, 1.43, 1.55, 0, 0, 0, 0, 0, 0, 0, 1.22, 1.14, 2.05, 0, 0, 0, 0, 0)
y <- 1860:1909
barplot(x, horiz=TRUE, axes=F)
axis(2, at=seq(1, 50, 2), labels=seq(1860, 1909, 2), las=2)
第一个值出现在 1867 年,但在图表上出现在 1868 年。我相信数据很好,因为 x[8] 返回 1.82,y[8] 返回 1867,这是正确的。在整个系列赛中,这种不匹配的情况不断扩大。事实上,最后三个条形图绘制在 y 轴上方。
也许我错过了一些基本的东西......提前非常感谢。
最佳答案
barplot()
不会在整数值上绘制条形图。它返回用作矩阵的值,然后您可以使用它来标记轴
bp <- barplot(x, horiz=TRUE, axes=F)
axis(2, at=bp[,1][seq(1,50, by=2)], labels=seq(1860, 1909, 2), las=2)
关于r - 水平条形图 : mis-matched axis units,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44679291/