Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用ggplot2打印形状文件中的瑕疵_R_Ggplot2_Gis_Shapefile - Fatal编程技术网

R 使用ggplot2打印形状文件中的瑕疵

R 使用ggplot2打印形状文件中的瑕疵,r,ggplot2,gis,shapefile,R,Ggplot2,Gis,Shapefile,在试图根据人口普查局2013年的形状文件绘制美国县时,生成的图中有洞/奇怪的填充,尤其是在不连续区域的县周围。我认为这和绘制的点的顺序有关,但不确定如何确定。例如,佛罗里达州的绘图,特别是在关键点周围,生成: library(ggplot2) library(dplyr) library(rgdal) download.file('http://www2.census.gov/geo/tiger/GENZ2013/cb_2013_us_county_500k.zip', 'county.zip

在试图根据人口普查局2013年的形状文件绘制美国县时,生成的图中有洞/奇怪的填充,尤其是在不连续区域的县周围。我认为这和绘制的点的顺序有关,但不确定如何确定。例如,佛罗里达州的绘图,特别是在关键点周围,生成:

library(ggplot2)
library(dplyr)
library(rgdal)

download.file('http://www2.census.gov/geo/tiger/GENZ2013/cb_2013_us_county_500k.zip',
'county.zip')
unzip('county.zip')

uscounties <- readOGR(.,'cb_2013_us_county_500k' )
uscounties@data$id <- rownames(uscounties@data)
countypoints <- fortify(uscounties, region='id')
countydf <- join(countypoints, uscounties@data, by='id')

ggplot(countydf[countydf$STATEFP=='12' ,])+
  aes(long, lat, group=COUNTYNS, fill=STATEFP)+
  geom_polygon()+
  geom_path(color="black")+
  coord_equal()
库(ggplot2)
图书馆(dplyr)
图书馆(rgdal)
下载.file('http://www2.census.gov/geo/tiger/GENZ2013/cb_2013_us_county_500k.zip',
‘country.zip’)
解压('country.zip')

u国家为什么要设置
group=COUNTYNS
??使用
group=id

ggplot(countydf[countydf$STATEFP=='12' ,])+
  aes(long, lat, group=group, fill=STATEFP)+
  geom_polygon()+geom_path(color="black")+coord_equal()

发帖时要多加小心,以免浪费别人的时间<代码>连接(…)
在包
plyr
中,而不是
dplyr
,并且

readOGR(.,"...")
不起作用,你需要

readOGR(dsn=".",layer="...")

当我试图运行您的代码时,我在
readOGR(,'cb_2013\u us_county_500k')
中得到一个错误,即nchar(dsn):对象中的
错误。'未找到
。你能让你的代码重现吗?还有,函数
join()
?在类似的问题中,你的解决方案对我有效,但只有当我在代码块中编写时使用
group=group
group=id
版本仍然会生成工件。