2017-07-14 133 views
0

我正在尝试将多个空间图层绘制到一张地图上。我不能缝我的点到美国地图上。我正在使用ggplot来映射这些空间数据。在命令add = TRUE中添加点(坐标)到“midwst”地图上遇到问题。我可以将两者分开绘制,但可以使用一些帮助在midwst地图上获取坐标。我觉得我可能不会使用正确的包命令彼此,但不能告诉。在R中绘制多个图层

setwd("D:") 

midwst <- readOGR(dsn="/ne_50m_states", layer="us") 
fsites = read.csv(file = "/WHAT Baseflow//final_sites.csv", header=T, 
sep=",") 

#Identify pts and Change projection 

coords <- SpatialPoints(fsites[,c("Longitude", "Latitude")]) 

projection(coords) <- CRS("+init=epsg:2163") 
spTransform(coords,CRS("+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 
+towgs84=0,0,0")) 

#Extract States from US Map 
plot(midwst, axes = T) 
plot(coords, pch = 21, bg = "red", cex = .5, axes = T) 
+0

绘制多层的例子及其可能的转变已经错了,点在正确的地方的arent。 'bbox(coords)'说什么?如果你“绘制(坐标)”,然后添加一些轴作为参考('axis(1); axis(2)'),那么数字看起来是否正确? “fsites”的经度和纬度栏是否真的在EPSG:2163? – Spacedman

+0

什么是'ggplot'与它有关?我没有看到你在这里使用它。 – Spacedman

+0

你是否打算在第二个plot函数调用中执行'“add = TRUE”?你在文本中说'add = TRUE',但是你的代码有'axes = T'并且没有'add'参数。有些东西是不正确的...... – Spacedman

回答

-1

下面是使用R基本方法

# Import "raster" package 
library(raster) 
# Get "Vietnam" from online database called GADM 
HN<-getData(name = "GADM",country="Vietnam",level=0) 

# Plotting HN map 
par(mar=rep(2,4)) 
plot(HN,border="black",axes=T) 

# Create some sample coordinates 

df<-data.frame(x=seq(105,106,by=0.5),y=seq(20,21,by=0.5)) 

library(sp) 
# Building a spatial point object 
coordinates(df)<-~x+y 

proj4string(df)<-CRS("+proj=longlat +datum=WGS84") 

# Overlaying the spatial point object on Vietnam map 
plot(df,add=T,col=2) 
+0

是的,我这样做了,但是每当我向点添加add = T命令,他们都不会绘制。当我删除add = T时,我能够看到空间中的点 –

+1

问题比这更深,并且可能是坐标转换问题,将一组数据放在错误的地方。看到我的评论。 – Spacedman

+0

如果您不提供数据集,我认为这对我来说很困难。你为什么点击“无用”按钮? – Tuyen