你能解释一下下面的R代码吗?
你能解释一下这个代码吗 x1和x2的用途是什么 我想从这个代码创建轮廓 请解释interp()的用法 此代码如何有助于绘制等高线 我们有一个文本文件,其中有三个单独的列,长度为lat-long。如何使用interp()你能解释一下下面的R代码吗?,r,R,你能解释一下这个代码吗 x1和x2的用途是什么 我想从这个代码创建轮廓 请解释interp()的用法 此代码如何有助于绘制等高线 我们有一个文本文件,其中有三个单独的列,长度为lat-long。如何使用interp() 欢迎来到Stack Overflow,感谢您的提问(不过发布的评论仍然相关:) x1,y1和x2,y2是要制作的矩形的右下角和左上角顶点的坐标向量 你关于集中度的空间数据不规则地分布在表面上,所以如果你能画出来,你会在地图上看到很多空白、混乱和不规则。您的轮廓和基础图像将无法读
欢迎来到Stack Overflow,感谢您的提问(不过发布的评论仍然相关:)
- x1,y1和x2,y2是要制作的矩形的右下角和左上角顶点的坐标向量李>
- 你关于集中度的空间数据不规则地分布在表面上,所以如果你能画出来,你会在地图上看到很多空白、混乱和不规则。您的轮廓和基础图像将无法读取和扭曲
- 为了避免这种情况,您应该对数据进行插值(或将数据放在常规网格上),因此您需要使用
软件包的akima
功能interp
- 不进行插值/平滑的极端示例(但是对于
package),您可以在ggplot2
countour plot本身不可能调用不规则数据,因为应将规则分布的z值矩阵作为参数提供base
f=read.table("data2_input.txt",sep="\t",header=T)
attach(f)
library(akima)
library(reshape2)
c1=length(f[1,])
r1=length(f[,1])
lat=0,long=0,conc=0,x1=0 y1=0 midx=0 x2=0 y2=0 midy=0
conc=0 r=r1
c=c1
lat=f[,1]
long=f[,2]
conc=f[,3]
ak=interp(long,lat,conc, xo=seq(min(long),max(long),length=200),yo=seq(min(lat),max(lat),length=75))
mak=melt(ak$z)
names(mak)=c('x','y','value')
mak$lon=ak$x[mak$x]
mak$lat=ak$y[mak$y]
lon_diff=round(ak$x[2]-ak$x[1],5)
lat_diff=round(ak$y[2]-ak$y[1],5)
mak1=mak[,3:5]
mak1=subset(mak1,mak1$value!='NA')
names(mak1)=c('Concentration','Longitude','Latitude')
/* why use x1 and x2*/
x1=round(mak1$Latitude-lat_diff/2,4)
y1=round(mak1$Longitude-lon_diff/2,4)
x2=round(mak1$Latitude+lat_diff/2,4)
y2=round(mak1$Longitude+lon_diff/2,4)
/*why use round function*/
z1=as.data.frame(cbind(x1,y1,x2,y2,round(mak1$Latitude,4),round(mak1$Longitude,4),round(mak1$Concentration,4)))
names(z1)=c('latitude_x1','longitude_y1','latitude_x2','longitude_y2','midx','midy','dvalue')
write.csv(z1,'data2_output.csv',row.names=F,quote=F)