Я объединил два объекта xts и хочу их нарисовать на одном дисплее. Это отлично работает, когда я использую точки (type = "p"). Однако, когда я использую строки (type = "l"), возникает проблема: первая серия показана только в области индекса, которая не покрывается второй серией. Я ожидал бы, что строки будут такими же точками, как «точки». Пример воспроизводимости приведен ниже.Построение объектов xts работает с точками, но не с линиями
Как это происходит с командами построения по умолчанию и ggplot, я подозреваю, что это относится к некоторому свойству данных временного ряда.
В чем причина такого поведения? Есть ли подходящий способ построения такого рода данных?
## Minimal example for Reproduction
library(xts)
library(ggplot)
# create two artificial xts objects
xts1 <- xts(1:15,Sys.Date()+10+seq(from=1,by=5,length.out=15))
xts2 <- xts(1:20,Sys.Date()+seq(from=1,by=2,length.out=20))
# merge them
merged.xts <- merge.xts(xts1,xts2)
# Plot as zoo objects to allow for panels
# plotting with points shows both series
plot(as.zoo(merged.xts),type="p",plot.type="single")
# plotting with lines
# The second series is "shortened"
plot(as.zoo(merged.xts),type="l",plot.type="single")
# Similar behaviour with ggplot2
autoplot(merged.xts)
Что произойдет, если вы преобразовать 'merged.xts' в простых векторов? –
Спасибо за быстрый ответ! Однако я не вижу, как это должно помочь. В моем реальном наборе данных отметки времени не равномерно распределены, поэтому я полагаю, что зоопарк или xts - это то, что мне нужно. Но, может быть, я упустил здесь что-то принципиальное? – Tungurahua