Разрешить пользователю выбирать данные для построения графика на графике - PullRequest
0 голосов
/ 21 февраля 2020

Я пытаюсь построить диаграмму, где пользователь может выбрать, какие данные столбца они хотят просмотреть на графике. Так что, если вы видите в данных ниже, я хочу построить диаграмму, где пользователь может видеть числа по дате для разных фруктов. Таким образом, ось x должна быть датой, а ось y должна указывать либо market1, market2 или market3, которые когда-либо выбирал пользователь, и диаграмму площадей, где области разделены по типам фруктов.

test_data <-data.frame(
  stringsAsFactors = FALSE,
       market1 = c(0L,0L,1L,0L,0L,1L,1L,0L,
                       2L,2L,0L,0L,1L,0L,8L,8L,0L,4L,3L,0L,4L,2L,
                       0L,1L,2L,0L,3L,2L,0L,5L,0L,7L,1L,8L,4L,0L,
                       16L,22L,0L,35L,17L,57L,19L,0L,125L,15L,0L,49L,
                       18L,0L),
            market2 = c(34L,5L,71L,3L,3L,30L,54L,
                       0L,15L,28L,0L,24L,53L,0L,169L,46L,0L,134L,40L,
                       0L,123L,18L,2L,54L,72L,0L,131L,44L,0L,111L,
                       35L,194L,19L,182L,65L,0L,462L,313L,0L,524L,300L,
                       1366L,216L,0L,2165L,297L,0L,1188L,196L,0L),
       market3 = c(1762L,1139L,2562L,294L,235L,
                       890L,1619L,1L,453L,1434L,6L,872L,1933L,12L,
                       3951L,1563L,20L,2934L,2358L,126L,5182L,2264L,208L,
                       3897L,2735L,3L,3156L,2727L,8L,3667L,1273L,4819L,
                       679L,5470L,1829L,7L,9847L,7309L,30L,9235L,7933L,
                       30486L,4551L,2L,35029L,7018L,3L,25591L,3516L,1L),
          fruit = c("Apple",
                       "Apple","Apple",
                       "Apple","Apple","Apple",
                       "Apple","Apple",
                       "Apple","Apple","Apple",
                       "Apple","Banana",
                       "Banana","Banana","Banana",
                       "Banana","Banana",
                       "Banana","Banana","Banana",
                       "Banana","Banana",
                       "Banana","Banana","Banana",
                       "Orange","Orange",
                       "Orange","Orange","Orange",
                       "Orange","Orange",
                       "Orange","Orange","Orange",
                       "Orange","Orange",
                       "Orange","Berries","Berries",
                       "Berries","Berries",
                       "Berries","Berries","Berries",
                       "Berries","Berries",
                       "Berries","Berries"),
              date = as.factor(c("1/10/20",
                                 "1/10/20","1/10/20","1/10/20","1/10/20",
                                 "1/10/20","1/11/20","1/11/20","1/11/20",
                                 "1/11/20","1/11/20","1/11/20","1/12/20","1/12/20",
                                 "1/12/20","1/12/20","1/12/20","1/12/20",
                                 "1/13/20","1/13/20","1/13/20","1/13/20",
                                 "1/13/20","1/13/20","1/14/20","1/14/20",
                                 "1/14/20","1/14/20","1/14/20","1/14/20","1/15/20",
                                 "1/15/20","1/15/20","1/15/20","1/16/20",
                                 "1/16/20","1/16/20","1/16/20","1/16/20",
                                 "1/16/20","1/17/20","1/17/20","1/17/20",
                                 "1/17/20","1/17/20","1/18/20","1/18/20","1/18/20",
                                 "1/18/20","1/18/20"))
)

Я пытался сделать это для только один рынок, но я не могу разделить его по фруктам. Как я могу go об этом. Ниже приведен код для сюжета.

plot_ly(test_data, x = test_data$date, y = test_data$market1, name = 'Tastemade', type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D')
  layout(title = 'Conversions By Day',
         #  xaxis = list(title = 'Date',rangeslider = list(type = "date")),
         xaxis = list(title = 'Date'),
         yaxis = list(title = 'Conversions'))

1 Ответ

1 голос
/ 21 февраля 2020

Я не думаю, что вы можете создать график, где пользователю будет разрешено изменять переменную оси Y, если вы не создадите блестящее приложение.

Вот пример точечной диаграммы для market1, где маркеры окрашены фруктами:

plot_ly(data = test_data, x = ~date, y = ~market1, color = ~fruit, colors = "RdYlGn", 
        type = 'scatter', mode = 'markers') %>% 
layout(title = 'Conversions By Day',
       #  xaxis = list(title = 'Date',rangeslider = list(type = "date")),
       xaxis = list(title = 'Date'),
       yaxis = list(title = 'Conversions'))
...