【问题标题】:Drawing a Square Line Chart using quantmod使用 quantmod 绘制方形折线图
【发布时间】:2011-11-01 04:29:07
【问题描述】:

有没有办法让 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"))

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

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

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"))

结果不太理想。

【问题讨论】:

  • 请提供reproducible example(即我们不知道myNumericVector 持有什么)。
  • 使示例可重现。

标签: r quantmod


【解决方案1】:

你想要一个“步骤”的line.type

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

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

【讨论】:

    猜你喜欢
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 2020-06-19
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 2016-07-31
    相关资源
    最近更新 更多