Установка group_by в plotly choropleth

#r #plotly

#r #plotly

Вопрос:

Я хочу создать choropleth в R с помощью plotly. Я хотел бы иметь возможность выбирать данные, которые отображаются на карте в легенде, как вы можете сделать в большинстве графиков plotly, установив color аргумент in add_trace() . Однако это, конечно, не работает так, как color принято для заполнения choropleth, и я не могу определить, как иначе это выполнить. group Аргумент устарел, и я не добился успеха group_by .

Воспроизводимый пример:

 library(data.table)
library(plotly)

sample <- data.table(Region=c("Illinois","Illinois","California","California","Texas","Texas"),
           code=c("IL","IL","CA","CA","TX","TX"),
           Group=c("A","B"),
           Value=rnorm(6, mean=100, sd=6))
sample$hover2 <- with(sample, paste(Region, '<br>', 
                                         "Group", Group, '<br>',
                                         "Value:", Value))

x <- list(
  scope = 'usa',
  projection = list(type = 'albers usa'),
  showlakes = TRUE,
  lakecolor = toRGB('lightblue')
)
  

Моя первая попытка показывает только Group B при наведении курсора мыши на состояния.

 plot_geo(sample, locationmode = 'USA-states') %>%
  add_trace(type="choropleth",
    z = ~Value,
    text = ~hover2, locations = ~code,
    color = ~Value
  ) %>%
  layout(
    title = 'Plotly map',
    geo = x
  )
  

Затем я обнаружил, что вы можете использовать group_by для замены group аргумента, но это просто создает тот же график, что и выше:

 sample %>%
  group_by(Group) %>%
  plot_geo(locationmode = 'USA-states') %>%
  add_trace(type="choropleth",
    z = ~Value,
    text = ~hover2, locations = ~code,
    color = ~Value
  ) %>%
  layout(
    title = 'Plotly map',
    geo = x
  )
  

Итак, я хотел бы использовать Group переменную, чтобы выбрать, какие данные отображаются ( Group==A или Group==B ). Любая помощь приветствуется.

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

1. Я подозреваю, что это может быть невозможно. Если вы не получили ответа на этот вопрос, возможно, рассмотрите возможность поиска альтернативы plotly. Возможно, leaflet может это сделать?

2. @dww Я думаю, вы правы. Я переключаюсь на маркеры, потому что заполнение choropleth не так важно.