R leaflet addPolygons - 如何孵化多边形?
R leaflet addPolygons - how to hatch polygons?
使用 leaflet()
和 addPolygons()
,可以根据特定变量为多边形(下例中的美国各州)着色。
问/ 有没有办法孵化多边形以便在地图中添加第二个信息?
颜色给出第一个信息(集群归属),我想添加第二个信息(例如名称中带有 'New' 的状态)。同时可视化这两种信息可能非常有用。
library(rgdal)
# From https://www.census.gov/geo/maps-data/data/cbf/cbf_state.html
states <- readOGR(
dsn = "2.Data/shp/cb_2013_us_state_20m.shp",
layer = "cb_2013_us_state_20m",
GDAL1_integer64_policy = T
)
sample <- states %>%
subset(STUSPS %in% c("CT","ME","MA","NH","RI","VT","NY","NJ","PA"))
MaPalette1 <- colorFactor(c('red', 'blue', 'green', 'grey', 'black', 'pink', 'orange', 'yellow', 'purple', 'white'),
sample@data$STATEFP)
leaflet(sample) %>%
addPolygons(
color = 'black',
weight = 1,
fillOpacity = 1,
fillColor = ~ MaPalette1(STATEFP)
)
我试着给多边形的边界上色,但是由于地图中已经有很多颜色,所以不容易可视化。
我也测试了addLayersControl(),但是我想在同一图层上可视化信息,并且两个颜色图层叠加产生新的颜色,信息无法理解。
在此先感谢您的帮助。
当我说 'hatching' 时,我认为是这样的:
由于您的问题已经存在几个月了,如果您找到其他解决方案并与我们分享,请告诉我。 HatchedPolygons 包应该可以满足您的需求。下面是一个工作示例,其中包含您尝试使用的相同数据:
devtools::install_github("statnmap/HatchedPolygons")
library(diplyr)
# From https://www.census.gov/geo/maps-data/data/cbf/cbf_state.html
states <- rgdal::readOGR(
dsn = "~/Downloads/cb_2013_us_state_20m/cb_2013_us_state_20m.shp",
layer = "cb_2013_us_state_20m",
GDAL1_integer64_policy = T
)
sample <- states %>%
subset(STUSPS %in% c("CT","ME","MA","NH","RI","VT","NY","NJ","PA"))
MaPalette1 <- colorFactor(c('red', 'blue', 'green', 'grey', 'black', 'pink', 'orange', 'yellow', 'purple', 'white'), sample@data$STATEFP)
# hatching
sample3 <- sample %>%
subset(STUSPS %in% c("NH", "NJ"))
sample3.hatch <- HatchedPolygons::hatched.SpatialPolygons(sample3, density = c(6,4), angle = c(45, 135))
# plot
leaflet(sample) %>%
addPolygons(
color = 'black',
weight = 1,
fillOpacity = 1,
fillColor = ~ MaPalette1(STATEFP)
) %>%
addPolylines(
data = sample3.hatch,
color = c("white", "red"),
weight = 1.0
)
使用 leaflet()
和 addPolygons()
,可以根据特定变量为多边形(下例中的美国各州)着色。
问/ 有没有办法孵化多边形以便在地图中添加第二个信息?
颜色给出第一个信息(集群归属),我想添加第二个信息(例如名称中带有 'New' 的状态)。同时可视化这两种信息可能非常有用。
library(rgdal)
# From https://www.census.gov/geo/maps-data/data/cbf/cbf_state.html
states <- readOGR(
dsn = "2.Data/shp/cb_2013_us_state_20m.shp",
layer = "cb_2013_us_state_20m",
GDAL1_integer64_policy = T
)
sample <- states %>%
subset(STUSPS %in% c("CT","ME","MA","NH","RI","VT","NY","NJ","PA"))
MaPalette1 <- colorFactor(c('red', 'blue', 'green', 'grey', 'black', 'pink', 'orange', 'yellow', 'purple', 'white'),
sample@data$STATEFP)
leaflet(sample) %>%
addPolygons(
color = 'black',
weight = 1,
fillOpacity = 1,
fillColor = ~ MaPalette1(STATEFP)
)
我试着给多边形的边界上色,但是由于地图中已经有很多颜色,所以不容易可视化。
我也测试了addLayersControl(),但是我想在同一图层上可视化信息,并且两个颜色图层叠加产生新的颜色,信息无法理解。
在此先感谢您的帮助。 当我说 'hatching' 时,我认为是这样的:
由于您的问题已经存在几个月了,如果您找到其他解决方案并与我们分享,请告诉我。 HatchedPolygons 包应该可以满足您的需求。下面是一个工作示例,其中包含您尝试使用的相同数据:
devtools::install_github("statnmap/HatchedPolygons")
library(diplyr)
# From https://www.census.gov/geo/maps-data/data/cbf/cbf_state.html
states <- rgdal::readOGR(
dsn = "~/Downloads/cb_2013_us_state_20m/cb_2013_us_state_20m.shp",
layer = "cb_2013_us_state_20m",
GDAL1_integer64_policy = T
)
sample <- states %>%
subset(STUSPS %in% c("CT","ME","MA","NH","RI","VT","NY","NJ","PA"))
MaPalette1 <- colorFactor(c('red', 'blue', 'green', 'grey', 'black', 'pink', 'orange', 'yellow', 'purple', 'white'), sample@data$STATEFP)
# hatching
sample3 <- sample %>%
subset(STUSPS %in% c("NH", "NJ"))
sample3.hatch <- HatchedPolygons::hatched.SpatialPolygons(sample3, density = c(6,4), angle = c(45, 135))
# plot
leaflet(sample) %>%
addPolygons(
color = 'black',
weight = 1,
fillOpacity = 1,
fillColor = ~ MaPalette1(STATEFP)
) %>%
addPolylines(
data = sample3.hatch,
color = c("white", "red"),
weight = 1.0
)