r:readOGR&;st_read给出了两个不同的情节?
我正试图用sf和ggplot软件包制作一张地图。。但是,当我运行st_read()命令读取我的shapefile并绘制它时,它并没有给出我想要的。。但当我用readOGR读入并绘制它时,它是。我想使用sf软件包,因为对我来说它似乎更容易。。为什么会这样?任何帮助都将不胜感激!谢谢 使用的代码:r:readOGR&;st_read给出了两个不同的情节?,r,dictionary,ggplot2,shapefile,sf,R,Dictionary,Ggplot2,Shapefile,Sf,我正试图用sf和ggplot软件包制作一张地图。。但是,当我运行st_read()命令读取我的shapefile并绘制它时,它并没有给出我想要的。。但当我用readOGR读入并绘制它时,它是。我想使用sf软件包,因为对我来说它似乎更容易。。为什么会这样?任何帮助都将不胜感激!谢谢 使用的代码: NJ_Map_Road<-st_read(dsn="V:/lum/WM&S/BEAR (Bureau of Environmental Analysis and Restoration)/E
NJ_Map_Road<-st_read(dsn="V:/lum/WM&S/BEAR (Bureau of Environmental Analysis and Restoration)/Envpln/Hourly Employees/KevinZolea/Rwork/2014IR/Maps/shapefiles",layer="2014_NJ_Integrated_Report_AU")
NJ_OGR<-readOGR(dsn="V:/lum/WM&S/BEAR (Bureau of Environmental Analysis and Restoration)/Envpln/Hourly Employees/KevinZolea/Rwork/2014IR/Maps/shapefiles",layer="2014_NJ_Integrated_Report_AU")
NJ_OGR
Formal class 'SpatialPolygonsDataFrame' [package "sp"] with 5 slots
..@ data :'data.frame': 958 obs. of 13 variables:
..@ polygons :List of 958
..@ plotOrder : int [1:958] 950 844 853 421 687 329 334 721 251 321 ...
..@ bbox : num [1:2, 1:2] 190378 10574 659480 919549
.. ..- attr(*, "dimnames")=List of 2
..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slot
我从readOGR获得的绘图:
NJ_Map_Road<-st_read(dsn="V:/lum/WM&S/BEAR (Bureau of Environmental Analysis and Restoration)/Envpln/Hourly Employees/KevinZolea/Rwork/2014IR/Maps/shapefiles",layer="2014_NJ_Integrated_Report_AU")
NJ_OGR<-readOGR(dsn="V:/lum/WM&S/BEAR (Bureau of Environmental Analysis and Restoration)/Envpln/Hourly Employees/KevinZolea/Rwork/2014IR/Maps/shapefiles",layer="2014_NJ_Integrated_Report_AU")
我从st_read得到的情节
Classes ‘sf’ and 'data.frame': 958 obs. of 14 variables:
$ OBJECTID : num 1 2 3 4 5 6 7 8 9 10 ...
$ AU_NUM : Factor w/ 958 levels "02020007000010-01",..: 6 81 372 59 91 385 380 127 414 417 ...
$ AU_NAME : Factor w/ 958 levels "Absecon Creek (AC Reserviors) (gage to SB)",..: 318 660 840 791 920 576 955 618 927 418 ...
$ HUC14TXT : Factor w/ 958 levels "BarnegatBay01",..: 23 98 389 76 108 402 397 144 431 434 ...
$ WMA : Factor w/ 20 levels "01","02","03",..: 2 3 1 6 3 1 1 5 1 1 ...
$ AQUATICLIF: Factor w/ 4 levels "Sublist 2","Sublist 3",..: 4 4 1 2 4 4 4 4 2 1 ...
$ AQUATICL_1: Factor w/ 5 levels "NA","Sublist 2",..: 3 5 5 5 5 3 5 1 5 5 ...
$ FISHCONSUM: Factor w/ 4 levels "Sublist 2","Sublist 3",..: 2 2 2 2 2 4 3 2 2 2 ...
$ RECREATION: Factor w/ 4 levels "Sublist 2","Sublist 3",..: 2 2 2 2 3 2 2 3 2 2 ...
$ SHELLFISH : Factor w/ 5 levels "NA","Sublist 2",..: 1 1 1 1 1 1 1 1 1 1 ...
$ PUBLICWATE: Factor w/ 5 levels "NA","Sublist 2",..: 2 5 3 2 2 2 3 5 3 3 ...
$ SHAPE_Leng: num 57104 140114 100002 78413 143794 ...
$ SHAPE_Area: num 1.53e+08 5.12e+08 3.81e+08 2.39e+08 3.03e+08 ...
$ geometry :sfc_MULTIPOLYGON of length 958; first list element: List of 1
我很困惑 您是否阅读了sf的说明?默认情况下,对sf
对象调用的plot()
会绘制该对象的所有属性的彩色贴图,最大值约为10。如果只需要轮廓,即只需要几何图形,则需要绘制sf
对象的几何图形部分。尝试绘图(st_geometry(NJ_Map_Road))
或绘图(NJ_Map_Road$geometry)
,两者都可以工作
我建议您也看看,它描述了
sf
(简单功能)、sfc
(简单功能几何列)和sfg
(简单功能几何)类型之间的关系。我没有读到。谢谢你的链接。成功了。这与ggplot的概念相同吗?因为当我尝试使用ggplot时,它给了我完全不同的东西。不,sf
为sf
对象实现了一个遵循这些规则的plot()
方法ggplot2
实现了geom_sf
,它做了一些不同的事情,与ggplot2
的其余部分更为一致,即除非使用aes
显式映射,否则不会绘制属性。