Как вернуть графическую фигуру из функции?

#r #r-plotly

#r #r-plotly

Вопрос:

Новичок здесь, поэтому, пожалуйста, будьте нежны! 😉

Я использую plotly in R для генерации некоторых фигур.

Код работает нормально, когда он запускается непосредственно в скрипте, но терпит неудачу, когда я пытаюсь вывести plotly фигуру из функции.

Например, ввод следующего и запуск непосредственно отображает фигуру и работает нормально ( data это список, содержащий множество разных параметров):

 fig1 <- plot_ly(x = 0:100, y = data[[parameter]], type = 'scatter', mode = 'lines', line = list(color = 'rgba(191,191,191,0.2)'))
fig1
  

Мне нужно сделать много графиков, поэтому я создал следующую функцию:

 Special_plot <- function(data, parameter){fig1 <- plot_ly(x = 0:100, y = data[[parameter]], type = 'scatter', mode = 'lines', line = list(color = 'rgba(191,191,191,0.2)'))
    return(fig1)
}
  

Функция запускается, но когда дело доходит до отображения фигуры, я получаю сообщение об ошибке:

 fig1 <- Special_plot(data, parameter) 
fig1
  

Это сообщение об ошибке:

 Error: Tibble columns must have consistent lengths, only values of length one are recycled:
* Length 0: Column `y`
* Length 101: Column `x`
Run `rlang::last_error()` to see where the error occurred.
  

Мне нужно обработать много фигур, и я хотел бы избежать ввода каждой по отдельности. Любая помощь приветствуется!

Комментарии:

1. Добро пожаловать в SO! Пожалуйста, предоставьте примерные данные, dput чтобы мы могли воспроизвести вашу проблему.

Ответ №1:

Я думаю, что вы x выходите за рамки. Может быть, попробуйте изменить x переменную, как показано ниже. Также 0 индекс отсутствует в R. Так что вам нужно начать с. 1

  Special_plot <- function(data, parameter){ fig1 <- plot_ly(x = 1:length(data[[parameter]]), y = data[[parameter]], type = 'scatter', mode = 'lines', line = list(color = 'rgba(191,191,191,0.2)'))
        return(fig1)
    }

fig1 <- Special_plot(data, parameter) 
fig1