Plotly (r): могут ли значения в раскрывающемся списке изменяться автоматически, отражая изменения фрейма данных? - PullRequest
1 голос
/ 04 мая 2019

Я исследую использование интерактивных plotly графиков, которые позволяют выбирать категориальные значения, которые соответственно изменяют график.Я планирую использовать следующую структуру кода, которая использовалась в примере с базой данных 'iris' в R.

Однако этот код, по-видимому, требует жесткого кодирования количества категориальных переменных в раскрывающемся списке (в этом примере есть 3 вида, из которых 3 списка были созданы для отражения этого).

Таким образом, мой вопрос заключается в том, что если база данных со временем изменилась с увеличением количества категориальных переменных, которые необходимо было бы включить в раскрывающийся список, существует ли способ автоматического обновления выпадающего списка?значения в списке без необходимости их жесткого кодирования?Спасибо за ваше время.

library(plotly)    
p <- iris %>%
  plot_ly(
    type = 'scatter', 
    x = ~Sepal.Length, 
    y = ~Petal.Length,
    text = ~Species,
    hoverinfo = 'text',
    mode = 'markers', 
    transforms = list(
      list(
        type = 'filter',
        target = ~Species,
        operation = '=',
        value = unique(iris$Species)[1]
      )
    )) %>% layout(
      updatemenus = list(
        list(
          type = 'dropdown',
          active = 0,
          buttons = list(
            **list**(method = "restyle",
                 args = list("transforms[0].value", unique(iris$Species)[1]),
                 label = unique(iris$Species)[1]),
            **list**(method = "restyle",
                 args = list("transforms[0].value", unique(iris$Species)[2]),
                 label = unique(iris$Species)[2]),
            **list**(method = "restyle",
                 args = list("transforms[0].value", unique(iris$Species)[3]),
                 label = unique(iris$Species)[3])
          )
        )
      )
    )
p
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...