绘制xts对象可以使用点,但不能使用线

时间:2013-09-17 19:24:13

标签: r plot time-series xts zoo

我合并了两个xts对象,并希望在单个显示中绘制它们。当我使用点(type =“p”)时,这很好用。但是,当我使用行(type =“l”)时会出现问题:第一个系列仅显示在第二个系列未涵盖的索引区域中。我希望线条和“点”一样长。可重复的示例发布在下面。

正如默认和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 points

# plotting with lines
# The second series is "shortened"
plot(as.zoo(merged.xts),type="l",plot.type="single")

Plotting with lines

# Similar behaviour with ggplot2
autoplot(merged.xts)

1 个答案:

答案 0 :(得分:3)

很简单,type="l"看起来就是这样,因为你无法在一个点上绘制一条线。设置type="b"以查看 b 的行和点。

points and lines and points and lines... it's like Morse Code!!!