Рисование квадратной диаграммы с использованием QuantMod - PullRequest
1 голос
/ 31 октября 2011

Есть ли способ заставить QuantMod нарисовать квадратную линейную диаграмму?

Я пытался изменить свой временной ряд так, чтобы каждая точка данных реплицировалась за одну секунду до следующей точки данных (надеясь, что это будет приблизительноквадратная линия), но QuantMod представляет данные по оси x последовательно и равномерно, независимо от фактических значений x (т. е. горизонтальное пространство между одной точкой и следующей одинаково, независимо от того, равна ли дельта-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

Кроме того, для любопытных приведен код, который копирует points во временных рядах так, чтобы разрыв между одним значением и следующим был как можно меньше:

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 Ответ

3 голосов
/ 01 ноября 2011

Вы хотите line.type из «step»:

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

См. ?plot, в частности, «type» в разделе ... в разделе «Аргументы» (вы можете выбрать «S» вместо «s ").

...