使用quantmod绘制方形线图

时间:2011-10-31 19:39:47

标签: r quantmod

有没有办法让quantmod绘制方形线图?

我已经尝试修改我的时间序列,以便每个数据点在下一个数据点之前复制一秒钟(希望这将近似于一条方线),但是quantmod似乎依次在x轴上的数据&均匀空间而不考虑x的实际值(即一个点之间的水平空间,下一个是相同的,无论delta-T是1秒还是1分钟)。

我想我可以将我的时间序列从稀疏转换为密集的(每次一个条目,而不是每次更改一个条目),但这看起来非常糟糕,应该是不必要的。

我正在构建我的时间序列:

library(quantmod)

myNumericVector <- c(3,7,2,9,4)
myDateTimeStrings <- paste("2011-10-31", c("5:26:00", "5:26:10", "5:26:40", "5:26:50", "5:27:00"))
myXts <- xts(myNumericVector, order.by=as.POSIXct(myDateTimeStrings))

绘制图表如下:

chartSeries(myXts, type="line", show.grid="true", theme=chartTheme("black"))

为了说明我所拥有的和我想要的东西,结果看起来像下面的蓝线,但我想要更像绿色的东西:

enter image description here

此外,对于好奇,这里是复制时间序列中的点的代码,使得一个值和下一个值之间的差距尽可能小:

mySquareDateTimes <- rep(as.POSIXct(myDateTimeStrings),2)[-1]
mySquareDateTimes[seq(2,8,by=2)] <- mySquareDateTimes[seq(2,8,by=2)] - 1
mySquareXts <- xts(rep(myNumericVector,each=2)[-10], order.by=mySquareDateTimes)
chartSeries(mySquareXts, type="line", show.grid="true", theme=chartTheme("black"))

结果不太理想。

1 个答案:

答案 0 :(得分:3)

您需要line.type“步骤”:

chartSeries(myXts, line.type="s")

请参阅?plot,特别是“参数”部分...下的“类型”(您可能想要“S”而不是“s”)。