我有以下data.frame,“subset”
Time A B C
2016-10-07 06:16:46 NA NA 41
2016-10-07 06:26:27 40 39 42
2016-10-07 06:38:23 NA 40 NA
2016-10-07 06:41:06 42 42 44
2016-10-07 06:41:06 NA 42 44
2016-10-07 06:41:06 NA 42 44
2016-10-07 06:41:07 44 43 48
2016-10-07 06:41:41 NA 43 48
2016-10-07 06:42:44 45 42 48
2016-10-07 06:48:40 46 45 48
我想要一个情节,其中“时间”是x轴,“A”是一条线,“B”和“C”是点。
然而,当我绘制这个时,“A”出现的唯一一行是连接最后两个点(45和46)的那一行,因为它们是“A”中唯一的2个连续值。该图忽略了“A”值之间的NA,而不是通过NA封装连接这些值的线。为此,我使用以下代码:
plot(subset$Time,subset$A,type="l",ylim=c(min(subset$B,na.rm=TRUE)-5,max(subset$C,na.rm=TRUE)+5),xlim=c(as.POSIXct(min(subset$Time)),as.POSIXct(max(subset$Time))))
lines(subset$Time,subset$B,type="p",col=27)
lines(subset$Time,subset$C,type="p",col=134)
我已经尝试过na.omit()或na.approx()这样的解决方案,但是这些似乎只有在我在独立的情节中单独绘制“A”时才起作用,它们似乎不能同时工作“时间”,“B”和“C”都在同一个情节中。
答案 0 :(得分:3)
您可以使用索引而不是na.omit()
:这样的事情应该这样做:
plot(subset$Time[!is.na(subset$A)],subset$A[!is.na(subset$A)],type="l")
# with your xlim and ylim, of course
lines(subset$Time,subset$B,type="p",col=27)
lines(subset$Time,subset$C,type="p",col=134)
答案 1 :(得分:0)