Как мне отобразить данные на уровне округа как тепловую карту, используя коды FIPS (интерактивно?) В R - PullRequest
1 голос
/ 29 сентября 2019

Я надеюсь создать интерактивную карту, которая позволит мне создать график, на котором пользователи могут изменять год и отображать переменные.Я видел, как используется пакет tmap, так что я представляю что-то подобное, но я бы также посоветовался для статической карты или другого подхода к интерактивной.Мои данные намного, намного, богаче этого, но выглядят примерно так:

example <- data.frame(fips = rep(as.numeric(c("37001", "37003", "37005", "37007", "37009", "37011", "37013", "37015", "37017", "37019"), 4)),
                      year = c(rep(1990, 10), rep(1991, 10), rep(1992, 10), rep(1993, 10)),
                      life = sample(1:100, 40, replace=TRUE),
                      income = sample(8000:1000000, 40, replace=TRUE),
                      pop = sample(80000:1000000, 40, replace=TRUE))

Я бы хотел, чтобы мой вывод был картой ТОЛЬКО округов, содержащихся в моем наборе данных (в моем случае, у меня естьво всех округах Северной Каролины, поэтому мне не нужна карта всего США), на которой будет показана тепловая карта выбранных переменных, представляющих интерес (в данных этого образца: year, life, income иpop. В идеале я бы хотел один график с двумя выпадающими меню, которые позволят вам выбрать, какой год вы хотите просмотреть, и какую переменную вы хотите видеть. Статическая карта, где я (а не пользователь) определяет годи переменная будет полезна, если вы не знаете, как сделать интерактивную вещь.

Я пробовал следующее (взято из здесь ), но это статично, что не моеидеально, и, похоже, также пытается нанести на карту весь США, поэтому часть, которая фактически содержится в моих данных (Северная Каролина), очень мала.

library(maps)
library(ggmap)
library(mapproj)
data(county.fips)
colors = c("#F1EEF6", "#D4B9DA", "#C994C7", "#DF65B0", "#DD1C77", 
           "#980043")

example$colorBuckets <- as.numeric(cut(example$life, c(0, 20, 40, 60, 80, 
                                                          90, 100)))
colorsmatched <- example$colorBuckets[match(county.fips$fips, example$fips)]

map("county", col = colors[colorsmatched], fill = TRUE, resolution = 0, 
    lty = 0, projection = "polyconic")
...