#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 не так важно.