У меня есть датафрейм со штатами США и их округами, как показано ниже:
State<-c("Alabama","Alabama","Alaska","Alaska")
StateCode<-c("AL","AL","AK","AK")
County<-c("AUTAUGA","BALDWIN","ANCHORAGE","BETHEL")
CountyCode<-c("AL001","AL003","AK020","AK050")
Murder<-c(5,6,7,8)
d<-data.frame(State,StateCode,County,CountyCode, Num)
Моя цель - создать развернутую карту штата-округа, такую как эта карта старших диаграмм ,После нахождения сводки Murder
по каждому штату я создал фрейм данных, подобный приведенному ниже:
data("USArrests", package = "datasets")
USArrests <- add_rownames(USArrests, "state")
(я использую USArrests
, потому что он похож на мой оригинальный набор данных в своей форме, чтобы использовать егокак пример)
Затем я использую этот высокоуровневый метод github , чтобы создать карту детализации
library("highcharter")
library("purrr")
library("dplyr")
library("viridisLite")
data("USArrests", package = "datasets")
data("usgeojson")
data("uscountygeojson")
names(usgeojson)
names(usgeojson$features[[1]])
usgeojson$features <- usgeojson$features %>%
map(function(x){
x$properties$code <- gsub("us-", "", x$properties$code)
x$properties$name <- x$properties$woename
x$drilldown <- x$properties[["code"]]
x$value <- ceiling(abs(rnorm(1)*2))
x$properties$value <- x$value
x
})
names(usgeojson$features[[1]])
names(usgeojson$features[[1]]$properties)
usgeojson$features[[1]]$properties
USArrests <- add_rownames(USArrests, "state")
fn <- JS("function(e){ if (!e.seriesOptions) { alert(e.point.drilldown) } }")
fn2 <- JS("function () { this.setTitle(null, { text: 'USA' }); }")
highchart(type = "map") %>%
hc_chart(
events = list(
drilldown = fn,
drillup = fn2
)
) %>%
hc_colorAxis(min = 0, minColor = "#FAFAFA", maxColor = "#2D2D2D") %>%
hc_series(
list(
data = USArrests %>% select(name = state, value = Murder) %>% list_parse(),
mapData = usgeojson,
joinBy = "name",
# data = usgeojson,
# type = "map",
name = "USA",
dataLabels = list(
enabled = TRUE,
format = "{point.properties.code}"
)
)
) %>%
hc_drilldown(
activeDataLabelStyle = list(
color = '#FFFFFF',
textDecoration = 'none',
textShadow = '0 0 3px #000000'
),
drillUpButton = list(
relativeTo = 'spacingBox',
position = list(x = 0, y = 60)
)
)
Карта состояний может быть создана, но развертка отсутствуетспособность и мое предположение, потому что нет никакой связи между моим начальным кадром данных с данными на уровне округа с новым.Кто-нибудь знает, как заставить это работать?