R Plotly - Как создать 2 выпадающих меню, которые оба выбирают часть данных - PullRequest
0 голосов
/ 31 марта 2020

Я создаю интерактивный барплот на Plotly (который показывает количество жителей - "НАСЕЛЕНИЕ" - обеспокоенных различными уровнями загрязнения - "ЗАГРЯЗНЕНИЕ") .

Вот извлечение моих данных:

   CITY        TYPE_POLLUANT POLLUTION POPULATION
   <chr>       <chr>             <dbl>      <dbl>
 1 Abriès (05) O3               117             2
 2 Abriès (05) O3               118           225
 3 Abriès (05) O3               119            79
 4 Abriès (05) NO2                0           303
 5 Abriès (05) NO2                1             2
 6 Abriès (05) NO2                2             1

10 Aiglun (04) O3               126           256
11 Aiglun (04) O3               127          1128
12 Aiglun (04) NO2                2            18
13 Aiglun (04) NO2                3           150
14 Aiglun (04) NO2                4           470
15 Aiglun (04) NO2                5           601

Я хочу, чтобы барплот менялся в зависимости от выбранного города или выбранного загрязнителя.

Для этого я использую опцию updatemenus.

Мне удалось добавить кнопки для выбора загрязнителя (NO2, O3, PM2.5 или PM10), я получил что-то вроде этого: enter image description here

Я также достиг создать выпадающий список, чтобы выбрать город, я получаю это: enter image description here

Но я хочу и то, и другое, но я не достигаю этого.

I создал первый график (для выбора загрязняющих веществ) с этим кодом:

fig <- plot_ly(type = "bar", name='') 

fig <- fig %>% 
  add_bars(data = df %>% filter(NOM_COMMUNE==input_commune, TYPE_POLLUANT=="NO2"),
           x = ~POLLUTION,  y = ~POPULATION,
           name = "NO2", marker=list(color=col_no2)) %>%

  add_bars(data = df %>% filter(NOM_COMMUNE==input_commune, TYPE_POLLUANT=="O3"),
           x = ~POLLUTION,  y = ~POPULATION,
           name = "O3", marker=list(color=col_o3), visible = FALSE) #%>%

  #same for 2 other pollutants

fig <- fig %>%
  layout(updatemenus = list(

    list(
      active = -1,
      type= 'buttons', direction = "right",
      y = 0.92, x=0.95,
      buttons = list(
        list(method = "update",
             args = list(list(visible = c(FALSE, TRUE, FALSE, FALSE, FALSE))),
             label = "NO2"),

        list(method = "update",
             args = list(list(visible = c(FALSE, FALSE, TRUE, FALSE, FALSE))),
             label = "O3")

        #same for 2 other pollutants
      ))))

Для второго, чтобы выбрать город, я использовал что-то вроде этого: R графически список данных с кадром updatemenu (создание списка городов с каждым списком «видимых» параметров (ИСТИНА / ЛОЖЬ)) * 10 29 *

Но смешивание обоих решений кажется очень сложным.

Я представлял себе список списка «видимых» параметров (TRUE / FALSE). Но нужно создать список из 2 кнопок в меню обновлений, так как я должен установить параметры расположения кнопок на графике. Таким образом, кажется сложным смешать «видимые» варианты загрязнителей и городов.

Есть ли у вас представление о правильном пути?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...