如何使用“ plot_ly”功能绘制多个图形?

时间:2020-03-08 01:03:52

标签: r ggplot2

我正在尝试使用plotly包中的plot_ly函数在同一图形上放多条线。绘图分离后,我没有成功使用lapply函数。遵循我使用的代码和步骤:

首先,生成样本并将其放入称为“数据”的向量中:

sample = rnorm(2093)
data <- as.data.frame(matrix(sample, nrow=91, ncol=23))

之后,我使用名为“名称”的向量为行命名:

name = c("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23")

最后,我使用“ lapply”功能滚动浏览数据:

fig <- plot_ly(data, x = ~data[1])

aux_list_1 <- lapply(seq_along(data), function(j){
  fig <- fig %>% add_trace(y = ~data[[j]], name = name[j],type='scatter',mode = 'lines')
  fig
  })

fig

当我运行“ fig”时,显示以下错误:

未指定跟踪类型: 根据提供的信息,“直方图”跟踪似乎合适。 详细了解此跟踪类型-> https://plot.ly/r/reference/#histogram

或者,当我运行“ aux_list_1”时,地块是分开的。

遵循完整的代码:

sample = rnorm(2093)
data<- as.data.frame(matrix(random,nrow=91,ncol=23))

name = c("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23")

fig <- plot_ly(data, x = ~data[1])

aux_list_1 <- lapply(seq_along(data), function(j){
  fig <- fig %>% add_trace(y = ~data[[j]], name = name[j],type='scatter',mode = 'lines')
  fig
  })

fig

1 个答案:

答案 0 :(得分:1)

这是您要找的吗?

fig <- plot_ly(data, x = ~data[1])

for(trace in colnames(data))
    fig <- fig %>% add_trace(y = as.formula(paste0("~", trace)), 
                             name = trace, type='scatter', mode = 'lines')
fig

enter image description here