Определенно вы можете сделать это в R, я собрал репрезенциум (воспроизводимый пример) для вас. Ключевые моменты:
- Вам необходимо загрузить в файл R a
.shp
(или .geojson
, .gpkg
, et c.). Это фактический файл с контуром вашей карты. Для ZIPCODES я нашел пакет R, tigris
, который сделает это за вас, если нет, вам придется загрузить его самостоятельно. - Для обработки объектов отображения (load, transform, .et c) пакет
sf
- ваш лучший друг. - Для построения графиков в этом примере я использовал
cartography
, но Вы можете использовать несколько различных пакетов, например ggplot2
или tmap
.
Последняя строка такова, что, учитывая ваши данные (и если я не ошибся с ZIPCODE), карта в качестве тот, который вы показали (карта choropleth), возможно, не самый лучший вариант. Посмотрите здесь , чтобы увидеть другие альтернативы.
library(sf) #Overall handling of sf objects
library(cartography) #Plotting maps package
#1. Create your data
yourdata <- data.frame(ZCTA5CE10=c("43613", "44140", "46052",
"48009","48017", "48021","48025"),
Cases=c(1,1,1,22,6,7,19)
)
#2. Download a shapefile (shp,gpkg,geojson...)
library(tigris) #For downloading the zipcode map
options(tigris_use_cache = TRUE)
geo <- st_as_sf(zctas(cb = TRUE, starts_with = yourdata$ZCTA5CE10))
#Overall shape of USA states
states <- st_as_sf(states(cb=TRUE))
#For plotting, all the maps should have the same crs
states=st_transform(states,st_crs(geo))
#3. Now Merge your data
yourdata.sf=merge(geo,yourdata)
#4. Plotting
par(mar=c(1,1,1,1))
ghostLayer(yourdata.sf)
plot(st_geometry(states), add=TRUE)
choroLayer(yourdata.sf,
var="Cases",
add=TRUE,
border = NA,
legend.pos = "right",
legend.frame = TRUE)
layoutLayer(title = "Cases by ZIPCODE",
theme = "blue.pal",
scale = FALSE,
sources = "Source; your question on SO",
author = "by dieghernan, 2020"
)
![](https://i.imgur.com/bmGztHL.png)
Создано в 2020-02-27 пакетом представ (v0.3.0)