我正在按照本教程中的"一些简单的地图"步骤尝试从这里为新奥尔良的邮政编码地图上色(我在该链接中使用新奥尔良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
Run Code Online (Sandbox Code Playgroud)
根据此文档,看起来这个错误意味着形状文件不使用带有效longlat数据的proj4string.
它是否使用其他类型的proj4string或CRS对象?
我做了这些命令试图找出,搜索输出的CRS,但没有找到任何东西.
> summary(orcounty.shp)
> str(orcounty.shp)
Run Code Online (Sandbox Code Playgroud)
我可以通过在readShapePoly命令中省略proj4string参数来导入形状文件,但这不是一个可行的解决方案,因为当我按照"一些简单的地图"部分(唯一的部分)时,地图不会出现在绘图窗口中我需要).
我会解决这个问题readOGR,它会保留投影信息,所以你不必像上面的问题一样乱用它.这是一个看似相同的shapefile(从这个美国政府网站下载),然后在其中绘制ggplot2.化妆品可能需要整理,但这会给你一些练习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")
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
2429 次 |
| 最近记录: |