R 如何使用传单从空间多边形数据框绘制特定列?

R 如何使用传单从空间多边形数据框绘制特定列?,r,plot,leaflet,sp,choropleth,R,Plot,Leaflet,Sp,Choropleth,我想使用传单::传单创建一个choropleth地图。 我的数据来自于一个空间多边形数据框,我想选择一个要绘制的特定列 使用sp::spplot,这很容易实现,因为参数zcol允许我指定要绘制的图层/列: library("maptools");library("sp");library("leafletR") SP <- readShapePoly(system.file("shapes/sids.shp", package="maptools

我想使用
传单::传单
创建一个choropleth地图。 我的数据来自于一个
空间多边形数据框
,我想选择一个要绘制的特定列

使用
sp::spplot
,这很容易实现,因为参数
zcol
允许我指定要绘制的图层/列:

library("maptools");library("sp");library("leafletR")
SP <- readShapePoly(system.file("shapes/sids.shp",  
                    package="maptools")[1],
                    proj4string=CRS("+proj=longlat +datum=WGS84 
                                     +no_defs +ellps=WGS84 
                                     +towgs84=0,0,0"))
spplot(SP, zcol="BIR79")


关于如何选择要使用
传单绘制的所需层/列的任何想法?可能类似于此。请注意,我使用的是
传单
而不是
传单
。这里有一个关于该软件包的介绍:

图书馆(传单)
图书馆(地图工具)
图书馆(sp)
图书馆(classInt)
图书馆(classInt)
SP%addPolygons(数据=SP,颜色=colcode)

您的代码缺少样式定义。对于分级样式,必须使用
styleGrad
创建样式对象。
styleGrad
中的
prop
参数指定要可视化的属性

library("maptools")
library("sp")
library("leafletR")

SP <- readShapePoly(system.file("shapes/sids.shp",  
                    package="maptools")[1],
                    proj4string=CRS("+proj=longlat +datum=WGS84 
                                     +no_defs +ellps=WGS84 
                                     +towgs84=0,0,0"))
SP4leaflet <- toGeoJSON(data=SP, dest=tempdir(), name="BIR79")
SPleaflet  <- leaflet(data=SP4leaflet, dest=tempdir(), 
                    title="Trying to plot BIR79",
                    base.map="osm", popup="*")

## missing style definition
brks <- seq(0, max(SP$BIR79), by=5000)
clrs <- colorRampPalette(c("blue","yellow", "red"))(7)
stl <- styleGrad(prop="BIR79", breaks=brks, style.val=clrs, 
                    out=1, leg="BIR79")
## end style definition

SPleaflet  <- leaflet(data=SP4leaflet, dest=tempdir(), 
                    title="Trying to plot BIR79", base.map="osm", 
                    style=stl, popup="*")
SPleaflet
库(“maptools”)
图书馆(“sp”)
图书馆(“传单”)

SP为了完整起见,我想提到的是,现在使用
库(mapview)
就可以轻松实现这一点

库(“maptools”)
图书馆(“sp”)
库(“地图视图”)

SP mh,你的代码对我不起作用…最后一个命令给了我这个错误:
browseURL(x,…:“url”必须是非空字符串
尝试在没有加载
传单
的情况下进行R会话。你是对的,不加载
传单
解决了问题…但是,我对
传单
解决方案不太满意,因为它没有提供图例(而
传单
提供了图例)。奇怪的是,该解决方案不适用于我正在使用的实际形状文件(不是代码中的示例形状文件)…
传单
只是给我一个空白的灰色贴图作为输出。我的形状文件可能有什么问题?我用
rgdal::readOGR
rgdal::spTransform
将它导入到
EPSG:4326
参考中<代码>spplot()
确实有效。。。
library(leaflet)
library(maptools)
library(sp)
library(classInt)
library(classInt)

SP <- readShapePoly(system.file("shapes/sids.shp",  
                    package="maptools")[1],
                    proj4string=CRS("+proj=longlat +datum=WGS84 
                                     +no_defs +ellps=WGS84 
                                     +towgs84=0,0,0"))
spplot(SP, zcol="BIR79")


## 6 classes with fixed given breaks
nclass <- classIntervals(SP$BIR79, n=6)

## Color for each class
colcode = findColours(nclass, c("red", "blue"))

leaflet(SP) %>% addTiles() %>% addPolygons(data = SP, color = colcode)
library("maptools")
library("sp")
library("leafletR")

SP <- readShapePoly(system.file("shapes/sids.shp",  
                    package="maptools")[1],
                    proj4string=CRS("+proj=longlat +datum=WGS84 
                                     +no_defs +ellps=WGS84 
                                     +towgs84=0,0,0"))
SP4leaflet <- toGeoJSON(data=SP, dest=tempdir(), name="BIR79")
SPleaflet  <- leaflet(data=SP4leaflet, dest=tempdir(), 
                    title="Trying to plot BIR79",
                    base.map="osm", popup="*")

## missing style definition
brks <- seq(0, max(SP$BIR79), by=5000)
clrs <- colorRampPalette(c("blue","yellow", "red"))(7)
stl <- styleGrad(prop="BIR79", breaks=brks, style.val=clrs, 
                    out=1, leg="BIR79")
## end style definition

SPleaflet  <- leaflet(data=SP4leaflet, dest=tempdir(), 
                    title="Trying to plot BIR79", base.map="osm", 
                    style=stl, popup="*")
SPleaflet
library("maptools")
library("sp")
library("mapview")

SP <- readShapePoly(system.file("shapes/sids.shp",  
                package="maptools")[1],
                proj4string=CRS("+proj=longlat +datum=WGS84 
                                 +no_defs +ellps=WGS84 
                                 +towgs84=0,0,0"))

spplot(SP, zcol="BIR79")
mapview(SP, zcol="BIR79")