R语言dygraphs报错:Unsupported type passed to argument 'data' 解决方法
解决dygraphs绘制堆叠图时的「Unsupported type passed to argument 'data'」错误
问题场景
用dygraphs包制作堆叠图,先模拟了如下时间序列数据:
library(dygraphs) set.seed(1) date <- seq(as.Date("2010-01-01"), as.Date("2010-12-01"), by = "month") var1 <- rnorm(length(date), mean = 100, sd = 10) var2 <- rnorm(length(date), mean = 50, sd = 5) df <- data.frame(date, var1, var2)
运行绘图代码时触发错误:
dygraph(df, main = "Stacked Graph") %>% dySeries("var1", label = "Var1") %>% dySeries("var2", label = "Var2") %>% dyOptions(stackedGraph = TRUE) %>% dyRangeSelector(height = 20)
报错信息:
Error in dygraph(df, main = "Stacked Graph") : Unsupported type passed to argument 'data'.
报错原因
dygraphs的核心函数dygraph()仅支持xts、ts或zoo类型的时间序列数据作为输入,直接传入普通数据框会因类型不兼容触发该错误。
解决方案
通过xts包将数据框转换为xts格式后再传入dygraph(),代码如下:
library(xts) # 将数据框转换为xts对象:提取数值列,指定日期为索引 df_xts <- xts(df[,-1], order.by = df$date) # 重新绘制堆叠图 dygraph(df_xts, main = "Stacked Graph") %>% dySeries("var1", label = "Var1") %>% dySeries("var2", label = "Var2") %>% dyOptions(stackedGraph = TRUE) %>% dyRangeSelector(height = 20)
内容的提问来源于stack exchange,提问作者stats_noob
相关产品推荐
相关产品推荐

