R中的染色图问题

Problems with Dygraphs in R

本文关键字:问题      更新时间:2023-09-26

我正试图在R dygraph中绘制以下时间序列数据帧。

str(data.frame)
'data.frame':   1440 obs. of  2 variables:
 $ Tm   : POSIXct, format: "2015-12-08 08:00:00" "2015-12-08 08:01:00" "2015-12-08 08:02:00" "2015-12-08 08:03:00" ...
 $ ydata: num  84.2 84.2 84.3 84.6 84.4 ...

下面提到了一个示例数据表。

445  2015-12-08 15:24:00 91.984
446  2015-12-08 15:25:00 92.330
447  2015-12-08 15:26:00 91.982
448  2015-12-08 15:27:00 92.022
449  2015-12-08 15:28:00 91.829
450  2015-12-08 15:29:00 91.984
451  2015-12-08 15:30:00 91.638
452  2015-12-08 15:31:00 91.443
453  2015-12-08 15:32:00 91.368
454  2015-12-08 15:33:00 91.637
455  2015-12-08 15:34:00 91.405
456  2015-12-08 15:35:00 91.478
457  2015-12-08 15:36:00 91.367
458  2015-12-08 15:37:00 91.328
459  2015-12-08 15:38:00 90.595
460  2015-12-08 15:39:00 90.285
461  2015-12-08 15:40:00 90.326
462  2015-12-08 15:41:00 90.364
463  2015-12-08 15:42:00 90.365
464  2015-12-08 15:43:00 90.673
465  2015-12-08 15:44:00 89.979
466  2015-12-08 15:45:00 90.403
467  2015-12-08 15:46:00 90.481
468  2015-12-08 15:47:00 90.326
469  2015-12-08 15:48:00 90.404
470  2015-12-08 15:49:00 90.250
471  2015-12-08 15:50:00 90.365
472  2015-12-08 15:51:00 90.789
473  2015-12-08 15:52:00 90.983
474  2015-12-08 15:53:00 91.253
475  2015-12-08 15:54:00 91.176
476  2015-12-08 15:55:00 91.253
477  2015-12-08 15:56:00 91.445
478  2015-12-08 15:57:00 91.176
479  2015-12-08 15:58:00 91.435
480  2015-12-08 15:59:00 91.368
481  2015-12-08 16:00:00 90.906
482  2015-12-08 16:01:00 91.251
483  2015-12-08 16:02:00 90.944
484  2015-12-08 16:03:00 90.596
485  2015-12-08 16:04:00 91.484
486  2015-12-08 16:05:00 91.368
487  2015-12-08 16:06:00 91.483
488  2015-12-08 16:07:00 91.330
489  2015-12-08 16:08:00 91.522
490  2015-12-08 16:09:00 91.907
491  2015-12-08 16:10:00 91.831
492  2015-12-08 16:11:00 91.598
493  2015-12-08 16:12:00 91.676
494  2015-12-08 16:13:00 91.869
495  2015-12-08 16:14:00 91.945
496  2015-12-08 16:15:00 91.793
497  2015-12-08 16:16:00 92.293
498  2015-12-08 16:17:00 92.754
499  2015-12-08 16:18:00 93.139
500  2015-12-08 16:19:00 93.023
501  2015-12-08 16:20:00 92.946
502  2015-12-08 16:21:00 92.947
503  2015-12-08 16:22:00 93.063
504  2015-12-08 16:23:00 93.178
505  2015-12-08 16:24:00 93.293
506  2015-12-08 16:25:00 93.178
507  2015-12-08 16:26:00 93.101
508  2015-12-08 16:27:00 92.638
509  2015-12-08 16:28:00 92.445
510  2015-12-08 16:29:00 92.987
511  2015-12-08 16:30:00 93.102
512  2015-12-08 16:31:00 93.410
513  2015-12-08 16:32:00 93.293
514  2015-12-08 16:33:00 93.795
515  2015-12-08 16:34:00 93.642
516  2015-12-08 16:35:00 93.564
517  2015-12-08 16:36:00 93.140
518  2015-12-08 16:37:00 93.024
519  2015-12-08 16:38:00 93.064
520  2015-12-08 16:39:00 93.025
521  2015-12-08 16:40:00 92.985
522  2015-12-08 16:41:00 91.677
523  2015-12-08 16:42:00 91.908
524  2015-12-08 16:43:00 92.099
525  2015-12-08 16:44:00 91.984
526  2015-12-08 16:45:00 91.638
527  2015-12-08 16:46:00 91.408
528  2015-12-08 16:47:00 90.789
529  2015-12-08 16:48:00 90.520
530  2015-12-08 16:49:00 91.523
531  2015-12-08 16:50:00 90.790
532  2015-12-08 16:51:00 89.786
533  2015-12-08 16:52:00 89.633
534  2015-12-08 16:53:00 89.518
535  2015-12-08 16:54:00 90.288
536  2015-12-08 16:55:00 90.441
537  2015-12-08 16:56:00 89.864
538  2015-12-08 16:57:00 89.595
539  2015-12-08 16:58:00 89.480
540  2015-12-08 16:59:00 89.632

我可以使用ggplot成功地获得输出,但当我尝试使用dygraph时,我会得到以下错误。

dygraph(data.frame)
Error in as.POSIXlt.character(x, tz, ...) : 
  character string is not in a standard unambiguous format

有什么想法吗?

请参阅下面的代码。不过,一个重要的建议是不要使用内置函数名作为对象名。在为数据运行下面的代码之前,还要确保Tm列是一个字符而不是一个因子。

require(xts)
stopifnot(class(dta$Tm) == "character") # make sure it's not a factor!
dta$Tm <- as.POSIXct(dta$Tm, format = "%d/%m/%Y %H:%M:%S")
dta <- xts(dta$ydata, order.by = dta$Tm)
dygraph(dta)