我正在尝试this教程中的“一些简单映射”步骤,尝试从here着色新奥尔良的邮政编码映射(我正在该链接的New Orleans 2011数据中使用.shp文件)。
当我尝试像教程中那样加载文件时,出现以下错误:
nolazip.shp <- readShapePoly("/PathTo/Orleans_ZCTA_2010_SP.shp", proj4string=CRS("+proj=longlat"))
Error in validityMethod(as(object, superClass)) :
Geographical CRS given to non-conformant data: 3820725.379655 613426.584024
根据this文档,看来此错误意味着该形状文件不使用带有有效longlat数据的proj4string。
它是否使用其他类型的proj4string或CRS对象?
我做了这些命令来试图找出答案,在输出中搜索CRS,但没有找到任何东西。
> summary(orcounty.shp)
> str(orcounty.shp)
我可以通过简单地在readShapePoly命令中省略proj4string参数来导入形状文件,但这不是可行的解决方案,因为当我遵循“一些简单地图”部分(唯一的部分时,地图不会出现在绘图窗口中)我需要)。
与我的shapefile相关联的proj4字符串是什么?我如何将其作为readShapePoly的输入
我还有其他方法可以导入适用于这种地图制作方法的shapefile吗?同样,仅忽略有问题的参数意味着该地图不会显示在R studio中的绘图中。
最佳答案
我将使用readOGR
解决此问题,它保留了投影信息,因此您不必像上面的问题一样弄乱它。这是读入然后在ggplot2
中绘制的似乎相同的shapefile(从this US government site下载)。化妆品可能需要整理,但这将为您提供一些RColorBrewer
和体重秤及其他ggplot2
东西的练习。 [编辑-在aes
中添加了丢失的geom_polygon
通话]
# if the packages are not installed, you will have to install and load them.
install.packages("rgdal")
install.packages("ggplot2")
install.packages("scales")
library(rgdal)
library(ggplot2)
library(scales)
require(rgdal)
require(ggplot2)
require(scales)
work.dir <- "your_dirname" # your directory
# no trailing slash
orl <- readOGR(work.dir, layer = "Orleans_ZCTA_2010_SP")
orl.df <- fortify(orl) # ggplot needs data frame, not spatial object
ggplot(data = orl.df, aes(x = long, y = lat, group = group)) +
geom_polygon(aes(fill = orl.df$group)) +
coord_equal() +
theme(legend.position = "none")