是否可以在没有州坐标的情况下创建choropleth传单地图?
我想知道,如果您没有是否可以在没有州坐标的情况下创建choropleth传单地图?,r,leaflet,choropleth,R,Leaflet,Choropleth,我想知道,如果您没有lat和long数据,但有完整的州名或阿拉巴马州的“AL”等短名称,是否可以创建带有传单的chorolpleth地图。我使用tbl_df或dataframe作为数据集。例如: A tibble: 50 x 5 state Murder Assault UrbanPop Rape <chr> <dbl> <int> <int> <dbl> 1 Alabama
lat
和long
数据,但有完整的州名或阿拉巴马州的“AL”等短名称,是否可以创建带有传单的chorolpleth地图。我使用tbl_df或dataframe作为数据集。例如:
A tibble: 50 x 5
state Murder Assault UrbanPop Rape
<chr> <dbl> <int> <int> <dbl>
1 Alabama 13.2 236 58 21.2
2 Alaska 10 263 48 44.5
3 Arizona 8.1 294 80 31
4 Arkansas 8.8 190 50 19.5
5 California 9 276 91 40.6
6 Colorado 7.9 204 78 38.7
7 Connecticut 3.3 110 77 11.1
8 Delaware 5.9 238 72 15.8
9 Florida 15.4 335 80 31.9
10 Georgia 17.4 211 60 25.8
data("USArrests", package = "datasets")
USArrests <- add_rownames(USArrests, "state")
m <- leaflet(USArrests$state) %>%
addProviderTiles("MapBox", options = providerTileOptions(
id = "mapbox.light",
accessToken = Sys.getenv('MAPBOX_ACCESS_TOKEN')))
m %>% addPolygons()
A tible:50 x 5
州谋杀袭击UrbanPop强奸案
1阿拉巴马州13.2 236 58 21.2
2阿拉斯加102634844.5
3亚利桑那州8.1 294 80 31
4阿肯色州8.8 190 50 19.5
5加利福尼亚92769140.6
6科罗拉多州7.9 204 78 38.7
7康涅狄格州3.3 110 77 11.1
8特拉华州5.9 238 72 15.8
9佛罗里达州15.43358031.9
10格鲁吉亚17.4 211 60 25.8
数据(“USArrests”,package=“dataset”)
USArrests%addPolygons()
您需要状态多边形的源。底格里斯的tigris
软件包将在这方面有所帮助
一旦我们有了状态
空间数据帧,我们就将其转换为一个简单的features对象,因为我们可以将其视为一个传统的数据帧。现在它可以left\u加入我们的USArrests
数据集
library(tidyverse)
library(sf)
library(leaflet)
library(tigris)
options(tigris_use_cache = TRUE)
data("USArrests", package = "datasets")
USArrests <- USArrests %>% as_tibble(rownames = "state")
states_sf <- tigris::states() %>%
as("sf") %>%
rename(state=NAME) %>%
left_join(USArrests) %>%
na.omit()
#> Joining, by = "state"
states_sf
#> Simple feature collection with 50 features and 18 fields
#> geometry type: MULTIPOLYGON
#> dimension: XY
#> bbox: xmin: -179.2311 ymin: 18.86546 xmax: 179.8597 ymax: 71.44106
#> epsg (SRID): 4269
#> proj4string: +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs
#> First 10 features:
#> REGION DIVISION STATEFP STATENS GEOID STUSPS state LSAD MTFCC
#> 1 3 5 54 01779805 54 WV West Virginia 00 G4000
#> 2 3 5 12 00294478 12 FL Florida 00 G4000
#> 3 2 3 17 01779784 17 IL Illinois 00 G4000
#> 4 2 4 27 00662849 27 MN Minnesota 00 G4000
#> 5 3 5 24 01714934 24 MD Maryland 00 G4000
#> 6 1 1 44 01219835 44 RI Rhode Island 00 G4000
#> 7 4 8 16 01779783 16 ID Idaho 00 G4000
#> 8 1 1 33 01779794 33 NH New Hampshire 00 G4000
#> 9 3 5 37 01027616 37 NC North Carolina 00 G4000
#> 10 1 1 50 01779802 50 VT Vermont 00 G4000
#> FUNCSTAT ALAND AWATER INTPTLAT INTPTLON Murder
#> 1 A 62265597146 489902816 +38.6472854 -080.6183274 5.7
#> 2 A 138924199212 31386038155 +28.4574302 -082.4091478 15.4
#> 3 A 143788697679 6206693598 +40.1028754 -089.1526108 10.4
#> 4 A 206232257655 18929176411 +46.3158148 -094.1996628 2.7
#> 5 A 25147754905 6983312282 +38.9466584 -076.6744939 11.3
#> 6 A 2677898725 1323551636 +41.5974187 -071.5272723 3.4
#> 7 A 214042908012 2398669593 +44.3484222 -114.5588538 2.6
#> 8 A 23187396994 1028678842 +43.6726907 -071.5843145 2.1
#> 9 A 125921301190 13470062955 +35.5397100 -079.1308636 13.0
#> 10 A 23873467535 1031124865 +44.0604795 -072.6733274 2.2
#> Assault UrbanPop Rape geometry
#> 1 81 39 9.3 MULTIPOLYGON (((-81.74725 3...
#> 2 335 80 31.9 MULTIPOLYGON (((-82.98624 2...
#> 3 249 83 24.0 MULTIPOLYGON (((-91.18529 4...
#> 4 72 66 14.9 MULTIPOLYGON (((-96.78438 4...
#> 5 300 67 27.8 MULTIPOLYGON (((-77.45881 3...
#> 6 174 87 8.3 MULTIPOLYGON (((-71.67264 4...
#> 7 120 54 14.2 MULTIPOLYGON (((-116.8997 4...
#> 8 57 56 9.5 MULTIPOLYGON (((-72.3299 43...
#> 9 337 45 16.1 MULTIPOLYGON (((-82.41674 3...
#> 10 48 32 11.2 MULTIPOLYGON (((-73.31328 4...
库(tidyverse)
图书馆(sf)
图书馆(单张)
图书馆(底格里斯)
选项(底格里斯河使用缓存=真)
数据(“USArrests”,package=“dataset”)
USARests%为不可编辑(rownames=“state”)
州(单位:sf%)
作为(“sf”)%>%
重命名(状态=名称)%%>%
左联合(USARREST)%>%
na.省略()
#>加入,按=“州”
美国
#>具有50个功能和18个字段的简单功能集合
#>几何图形类型:多多边形
#>尺寸:XY
#>bbox:xmin:-179.2311 ymin:18.86546 xmax:179.8597 ymax:71.44106
#>epsg(SRID):4269
#>proj4string:+proj=longlat+ellps=GRS80+towgs84=0,0,0,0,0,0+no_defs
#>前10个功能:
#>区域划分州FP州GEOID STUSPS州LSAD MTFCC
#>1 35 54 01779805 54西弗吉尼亚州WV 00 G4000
#>2 3 5 1200 294478佛罗里达州12佛罗里达州00 G4000
#>3 2 3 17 01779784 17伊利诺伊州00 G4000
#>4 2 4 27 00662849 27 MN明尼苏达州G4000
#>5 3 5 24 01714934马里兰州24马里兰州00 G4000
#>611440121983544RIRhode Island 00G4000
#>7 4 8 16 01779783 16 ID爱达荷州00 G4000
#>813301779794 33新罕布什尔州00 G4000
#>9 3 5 37 01027616 37北卡罗来纳州00 G4000
#>101 150 01779802 50佛蒙特州VT 00 G4000
#>FUNCSTAT ALAND AWATER INTPTLAT INTPTLON谋杀案
#>1 A 62265597146 489902816+38.6472854-080.6183274 5.7
#>2 A 138924199212 31386038155+28.4574302-082.4091478 15.4
#>3 A 1437886979 6206693598+40.1028754-089.1526108 10.4
#>4 A 2062322576518929176411+46.3158148-094.1996628 2.7
#>5A 251477549056983312282+38.9466584-076.6744939 11.3
#>6 A 2677898725 1323551636+41.5974187-071.52723 3.4
#>7 A 214042908012 2398669593+44.3484222-114.5588538 2.6
#>8 A 23187396994 1028678842+43.6726907-071.5843145 2.1
#>9 A 125921301190 13470062955+35.5397100-079.1308636 13.0
#>10 A 23873467535 1031124865+44.0604795-072.6733274 2.2
#>突袭UrbanPop强奸几何
#>1 81 39 9.3多边形((-81.74725 3。。。
#>2 335 80 31.9多边形((-82.98624 2。。。
#>32498324.0多边形((-91.185294。。。
#>4 72 66 14.9多边形((-96.78438 4。。。
#>53006727.8多边形((-77.458813。。。
#>6174 87 8.3多边形((-71.67264 4。。。
#>71205414.2多边形((-116.89974。。。
#>8 57 56 9.5多边形((-72.3299 43。。。
#>93374516.1多边形((-82.41674 3。。。
#>10 48 32 11.2多边形((-73.31328 4。。。
从这里开始,我们只需遵循
pal%
addTiles()
m%addPolygons(
fillColor=~pal(谋杀案),
重量=2,
不透明度=1,
color=“白色”,
dashArray=“3”,
填充不透明度=0.7)
#>警告:sf层具有不一致的基准(+proj=longlat+ellps=GRS80+towgs84=0,0,0,0,0,0+no_defs)。
#>需要“+proj=longlat+datum=WGS84”
M
当我有tbl_df或数据帧时,它使用一个SpatialPolygonDataframe,因此我得到一个错误“不知道如何从类tbl_df的对象获取路径数据”
pal <- colorQuantile("YlOrRd", domain = states_sf$Murder)
m <- leaflet(states_sf) %>%
setView(-96, 37.8, 4) %>%
addTiles()
m <- m %>% addPolygons(
fillColor = ~pal(Murder),
weight = 2,
opacity = 1,
color = "white",
dashArray = "3",
fillOpacity = 0.7)
#> Warning: sf layer has inconsistent datum (+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs).
#> Need '+proj=longlat +datum=WGS84'
m