相关疑难解决方法(0)

绘制不规则网格上的轮廓

我已经浏览了R中的等高线图页面(包括stackoverflow上的许多提示)但没有成功.这是我的轮廓数据,包括添加卢旺达地图(数据包括经度,纬度和降雨的14个值为x,y和z):

Lon Lat Rain
28.92   -2.47   83.4
29.02   -2.68   144
29.25   -1.67   134.7
29.42   -2.07   174.9
29.55   -1.58   151.5
29.57   -2.48   224.1
29.6    -1.5    254.3
29.72   -2.18   173.9
30.03   -1.95   154.8
30.05   -1.6    152.2
30.13   -1.97   126.2
30.33   -1.3    98.5
30.45   -1.81   145.5
30.5    -2.15   151.3
Run Code Online (Sandbox Code Playgroud)

这是我从stackoverflow尝试的代码:

datr <- read.table("Apr0130precip.txt",header=TRUE,sep=",")
x <- datr$x
y <- datr$y
z <- datr$z

require(akima)

fld <- interp(x,y,z)

par(mar=c(5,5,1,1))
filled.contour(fld)
Run Code Online (Sandbox Code Playgroud)

插值fails.help将不胜感激.

r contour ggplot2

31
推荐指数
1
解决办法
1万
查看次数

如何使用R中的ggplot2在投影地图上绘制插值数据

我想使用ggplot2在投影地图上绘制一些插值数据,我已经在这个问题上工作了几个星期.希望有人可以帮助我,非常感谢.shapefile和数据可以在https://www.dropbox.com/s/8wfgf8207dbh79r/gpr_000b11a_e.zip?dl=0https://www.dropbox.com/s/9czvb35vsyf3t28/Mydata.rdata?dl=找到.0.

首先,shapefile最初使用"lon-lat"投影,我需要将其转换为Albers Equal Area(aea)投影.

library(automap)
library(ggplot2)
library(rgdal)
load("Mydata.rdata",.GlobalEnv)
canada2<-readOGR("gpr_000b11a_e.shp", layer="gpr_000b11a_e")
g <- spTransform(canada2, CRS("+proj=aea +lat_1=50 +lat_2=70 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs +ellps=GRS80 +towgs84=0,0,0"))
Borders=ggplot() +geom_polygon(data=g,aes(x=long,y=lat,group=group),fill='white',color = "black")
Borders
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我们可以看到,我们可以正确地绘制国家.然后我想用Kriging方法插入数据,代码取自Smoothing out ggplot2 map.

coordinates(Mydata)<-~longitude+latitude
proj4string(Mydata)<-CRS("+proj=longlat +datum=NAD83")
sp_mydata<-spTransform(Mydata,CRS(proj4string(g)))
Krig=autoKrige(APPT~1,sp_mydata)
interp_data = as.data.frame(Krig$krige_output)
colnames(interp_data) = c("latitude","longitude","APPT_pred","APPT_var","APPT_stdev")
interp_data=interp_data[,1:3]
ggplot(data=interp_data, aes(x=longitude, y=latitude)) + geom_tile(aes(fill=APPT_pred),color=NA)
Run Code Online (Sandbox Code Playgroud)

然后我们可以看到插值数据图. 在此输入图像描述

最后我想结合这两个数字然后我得到以下错误: Error: Don't know how to add o to a plot

ggplot(data=interp_data, aes(x=longitude, y=latitude)) + geom_tile(aes(fill=APPT_pred),color=NA)+Borders 
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何在地图上绘制插值数据,然后添加网格线(经度和纬度).另外,我想知道如何剪切插值数据图以适应整个加拿大地图.谢谢您的帮助.

plot interpolation r spatial ggplot2

5
推荐指数
1
解决办法
1314
查看次数

标签 统计

ggplot2 ×2

r ×2

contour ×1

interpolation ×1

plot ×1

spatial ×1