R dygraph跳过多个图形显示的缺失值

时间:2015-09-04 04:00:47

标签: r dygraphs

我在使用dgraph绘制多行时遇到了一个问题,

我有一个数据帧如下,它包含时间,通道和SNR值,我想显示每个通道的SNR值,我希望dygraph在数据集中显示8 Line(它有8个通道)。

 head(gateSNR_df)
                 time channel  SNR
1 2015-09-03 02:40:44       6 -125
2 2015-09-03 02:40:49       3  -95
3 2015-09-03 02:40:54       0   22
4 2015-09-03 02:40:59       0   28
5 2015-09-03 02:41:04       5 -125
6 2015-09-03 02:41:09       2  -52
........
.........

所以我使用reshape2:dcast进行重塑

gateSNR_c <- dcast(gateSNR_df, time~channel, value.var="SNR")
head(gateSNR_c)
                 time  0  1   2   3  4    5    6  7
1 2015-09-03 02:40:44 NA NA  NA  NA NA   NA -125 NA
2 2015-09-03 02:40:49 NA NA  NA -95 NA   NA   NA NA
3 2015-09-03 02:40:54 22 NA  NA  NA NA   NA   NA NA
4 2015-09-03 02:40:59 28 NA  NA  NA NA   NA   NA NA
5 2015-09-03 02:41:04 NA NA  NA  NA NA -125   NA NA
6 2015-09-03 02:41:09 NA NA -52  NA NA   NA   NA NA

然后我转到XTS对象进行dygraph显示

> gateSNR_xts <- xts(gateSNR_c[,-1], as.POSIXct(gateSNR_c[,1]))
> 
> 
> head(gateSNR_xts)
                     0  1   2   3  4    5    6  7
2015-09-03 02:40:44 NA NA  NA  NA NA   NA -125 NA
2015-09-03 02:40:49 NA NA  NA -95 NA   NA   NA NA
2015-09-03 02:40:54 22 NA  NA  NA NA   NA   NA NA
2015-09-03 02:40:59 28 NA  NA  NA NA   NA   NA NA
2015-09-03 02:41:04 NA NA  NA  NA NA -125   NA NA
2015-09-03 02:41:09 NA NA -52  NA NA   NA   NA NA
> 

不知何故,由于NA值,dygraph(gateSNR_xts)无法正常工作, 我不能只省略NA,因为它可能会丢失整个条目。

Q1:无论如何R是否绘制每条线并跳过NA值? Q2:如果没有,我可以生成8 xts。如何在一个dygraph中显示8 xts线?

感谢您的帮助 詹姆斯

1 个答案:

答案 0 :(得分:6)

您需要使用dygraphs::dyOptions并将connectSeparatedPoints选项设置为TRUE

实施例

set.seed(123)
library(dygraphs)
mdeaths[sample(seq_along(mdeaths), 20)] <- NA
ldeaths[sample(seq_along(ldeaths), 20)] <- NA
lungDeaths <- cbind(ldeaths, mdeaths)

dygraph(lungDeaths) %>% 
  dyOptions(connectSeparatedPoints = TRUE)

更多信息:dygraphs官方文档http://dygraphs.com/options.html#connectSeparatedPoints