R:用不同颜色绘制一个时间序列

时间:2016-04-07 06:15:49

标签: r plot graphics time-series

我想绘制不同颜色的时间序列,例如前半部分是黑色,系列的后半部分是红色。我这样做

plot(1:10,col = c(rep("black",5),rep("red",5)),type="o")

但是,它只更改符号而不更改行: enter image description here

下半场如何获得红线?

2 个答案:

答案 0 :(得分:2)

您可以像这样手动插入不同的线段:

plot(1:10, 1:10, col = c(rep("black" ,5), rep("red" ,5)))

lines(1:5, 1:5, col = "black") 
lines(6:10, 6:10, col = "red")

plot

然而,当涉及到更复杂的数据集时,这种方法相当不灵活。因此,我通常倾向于使用xyplot(来自 lattice )和group参数来完成此类任务。对于您的问题,这将是一个更灵活的解决方案。

dat <- data.frame(x = 1:10, y = rep(c("a", "b"), each = 5))

library(lattice)
xyplot(x ~ 1:length(x), data = dat, group = y, type = "b", 
       col = c("black", "red"))

xyplot

答案 1 :(得分:0)

x = 1:10  #x can be any time series or vector

plot(x,type = 'l',col = 'black')

x2 = x

x2[1:5] = NA    #fill first half with NA

lines(x2,col = 'blue')   #NAs will be ignored in the plot

enter image description here