水平条形图:不匹配的轴单位

时间:2017-06-21 14:42:15

标签: r charts bar-chart

我正在尝试创建一个在y轴上有多年的旋转条形图。某些年份有一个值(即一个条形),其余的都是零。

出于某种原因,当我添加年份的y轴时,条形与值反映的年份之间存在不匹配。如果有人能解释为什么会发生这种情况以及如何解决这个问题,我将不胜感激。

以下是我的数据的一个子集:

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轴上方。

也许我错过了一些基本的东西......非常感谢提前。

1 个答案:

答案 0 :(得分:2)

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)