2016-05-25 9 views
2

Rで2Dのレベルプロットを作成したいと思います。ここで、x座標とy座標は補間を使用せずに不規則なグリッドからのものです。グリッドは以下の通りです。不規則グリッド上のレベルプロット

grid<-cbind(seq(from=0.05,to=0.5,by=0.05),seq(from=0.05,to=0.5,by=0.05)) 
grid<-rbind(grid,cbind(seq(from=0.0,to=0.95,by=0.05),seq (from=0.05,to=1,by=0.05))) 
grid<-rbind(grid,cbind(seq(from=0,to=0.9,by=0.05),seq (from=0.1,to=1,by=0.05))) 
grid<-rbind(grid,cbind(seq(from=0,to=0.85,by=0.05),seq(from=0.15,to=1,by=0.05))) 
grid<-rbind(grid,cbind(seq(from=0,to=0.75,by=0.05),seq(from=0.25,to=1,by=0.05))) 
grid<-rbind(grid,cbind(seq(from=0,to=0.80,by=0.05),seq(from=0.20,to=1,by=0.05))) 
grid<-rbind(grid,cbind(seq(from=0,to=0.70,by=0.05),seq(from=0.30,to=1,by=0.05))) 
grid<-rbind(grid,cbind(seq(from=0,to=0.65,by=0.05),seq(from=0.35,to=1,by=0.05))) 
grid<-rbind(grid,cbind(seq(from=0,to=0.60,by=0.05),seq(from=0.40,to=1,by=0.05))) 
grid<-rbind(grid,cbind(seq(from=0,to=0.55,by=0.05),seq(from=0.45,to=1,by=0.05))) 
grid<-rbind(grid,cbind(seq(from=0,to=0.50,by=0.05),seq(from=0.50,to=1,by=0.05))) 
grid<-rbind(grid,cbind(seq(from=0,to=0.40,by=0.05),seq(from=0.60,to=1,by=0.05))) 
grid<-rbind(grid,cbind(seq(from=0,to=0.45,by=0.05),seq(from=0.55,to=1,by=0.05))) 
grid<-rbind(grid,cbind(seq(from=0,to=.35,by=0.05),seq(from=0.65,to=1,by=0.05))) 
grid<-rbind(grid,cbind(seq(from=0,to=0.30,by=0.05),seq(from=0.70,to=1,by=0.05))) 
x=grid[,1] 
y=grid[,2] 

Z値は別のベクトルに格納されます。私は画像機能を使用しようとしましたが、幸運はありません。私は

height.vals=matrix(runif(dim(grid)[1]),nrow=dim(grid)[1],ncol=1) 

image(x,y,height.vals) 

をしようとした場合例えば、私は、xとyが増加しなければならないというエラーメッセージが表示されます。

akima関数interpを使用できますが、補間データが得られます。

答えて

0

20 x 20グリッドにポイントがあるように見えます。したがって、20 x 20の行列を作成し、height.valsの値で入力してください。

は微調整の少しを使用すると、行列の指数にxy値をオンにし、マトリックス内の適切な場所にheight.valsを割り当てるために、これらの指標を使用することができます。

# Turn the x and y values into integers. 
# R doesn't take 0 as an index, so add 1 to the x values to get rid of the 0s 
inds <- cbind(x = as.integer(20*x + 1), y = as.integer(20*y)) 

# create the 20 x 20 matrix 
m <- matrix(nrow = 20, ncol = 20) 
# fill the matrix with height.vals based on the indices 
m[inds] <- height.vals 

その後、あなたはimagefilled.contourのような関数への入力としてmを使用することができ、かつlattice::levelplot

image(m) 

enter image description here

+0

おかげで、@Jota。まさに私が探しているもの! – FredrikAa

関連する問題