2

私はこのコードを持っていて、データフレームの黄土面を作成します。

    library(gstat)
    library(sp)
    x<-c(0,55,105,165,270,65,130,155,155,225,250,295,
         30,100,110,135,160,190,230,300,30,70,105,170,
         210,245,300,0,85,175,300,15,60,90,90,140,210,
         260,270,295,5,55,55,90,100,140,190,255,285,270)
    y<-c(305,310,305,310,310,260,255,265,285,280,250,
         260,210,240,225,225,225,230,210,215,160,190,
         190,175,160,160,170,120,135,115,110,85,90,90,
         55,55,90,85,50,50,25,30,5,35,15,0,40,20,5,150)
    z<-c(870,793,755,690,800,800,730,728,710,780,804,
         855,813,762,765,740,765,760,790,820,855,812,
         773,812,827,805,840,890,820,873,875,873,865,
         841,862,908,855,850,882,910,940,915,890,880,
         870,880,960,890,860,830)

    dati<-data.frame(x,y,z)

    x.range <- as.numeric(c(min(x), max(x)))  
    y.range <- as.numeric(c(min(y), max(y)))

    meuse.loess <- loess(z ~ x * y, dati, degree=2, span = 0.25, 
                         normalize=F)
    meuse.mar <- list(x = seq(from = x.range[1], to = x.range[2], by = 1), y = seq(from = y.range[1], 
                                                                                    to = y.range[2], by = 1))
    meuse.lo <- predict(meuse.loess, newdata=expand.grid(meuse.mar), se=TRUE)

今、ggplot2 関数でプロットしたいのですが、x、y (グリッドの座標) と z (補間値) の列を持つデータフレームでmeuse.lo[[1]]変換する方法がわかりません。meuse.lo[[1]]ありがとう。

4

2 に答える 2

1

ggplot2おそらく、3D グラフには最適な選択ではありません。ただし、ここに簡単な解決策がありますrgl

library(rgl)
plot3d(x, y, z, type="s", size=0.75, lit=FALSE,col="red")
surface3d(meuse.mar[[1]], meuse.mar[[2]], meuse.lo[[1]],
      alpha=0.4, front="lines", back="lines")
于 2016-04-06T09:54:50.290 に答える