如何在 R 中的条形之间获取刻度线



我想在消耗条之间获取刻度线,例如在 http://hante.home.xs4all.nl/plugwise_dagoverzicht_281009_2.jpg 中。

在两个日期或两次之间获取消耗量更合乎逻辑......

但是,我不明白如何在 R 中做到这一点。

我确实有这样一个示例表,称为 data:

       date  nombre  delta 
 2014-02-01       0      0 
 2014-02-08     120    120 
 2014-02-15     205     85 
 2014-02-22     280     75 
 2014-02-29     350     70 

到目前为止,我设法写下的代码是:

data$date <- as.POSIXct(data$date, format = "%Y-%m-%d")
data <- data[-2]
barplot(height=data[,2], names=data[,1], las=2)

但是"刻度"就在柱线下方...正如您在 https://i.stack.imgur.com/vilgz.jpg 上看到的那样。

您没有提供任何代码。您的数据是如何表示的?你是如何绘制条形图的?

如果使用包latticebarchart(..., horizontal=FALSE),则可以使用参数手动提供新的轴刻度标签 scales=list(x=list(at=seq_len(numBars+1) - 0.5, labels=yourLabels))) 其中numBars是 x 轴上的箱数。请参阅?barchart

如果您使用的是更原始的barplot,则可以自己绘制偏移轴:

mids <- barplot(x, axisnames=FALSE)
axis(1, at = mids - (mids[2]-mids[1])/2, labels = yourLabels)

无论哪种方式,显然您都可以通过更改偏移符号来向右移动,或者为numBins +1 标签添加两个外部刻度。

编辑:

使用您在编辑中添加的代码+数据:

mids <- barplot(height=data[,2], axisnames=FALSE)
axis(1, at = mids - (mids[2]-mids[1])/2, labels = data[,1], las=2)

或者例如,写它并添加结束日期:

mstep <- (mids[2] - mids[1]) / 2
axis(1, at=c(mids[1] - mstep, mids + mstep), labels=c(data[,1], endDate), las=2)

相关内容

  • 没有找到相关文章