2012年4月26日星期四

統計ソフトRでの、等高線の書き方について質問です。よろしくお願いします。

統計ソフトRでの、等高線の書き方について質問です。よろしくお願いします。

Rで等高線を書きたいのですが、情報量が少ないため、contour関数では書けません。



現在与えられているのは、20個の点に対しての座標(x,y,z)です。2次元上の布置まではできているのですが、等高線を用いてz座標を表現することができません。



どの関数を扱えばいいかなど、わかるかたがいらっしゃいましたら教えてください。



よろしくお願いいたします。







20点あればcontour関数が使えそうなものですが。

なぜcontourで描けないのでしょうか?



どうしてもcontourでダメならimage()とか?(等高線ではなくなってしまいますが)

この辺りが参考になるかと思います。

http://www.eml.ele.cst.nihon-u.ac.jp/~momma/wiki/wiki.cgi/R/%E6%BB%...



補足:

たとえばこんなコマンドで単純な等高線を描くことができます。

x <- -6:16

contour(outer(x, x), method = "edge", vfont = c("sans serif", "plain"))



20点で等高線を描こうと思った場合、問題になるのは点が無い部分のZ座標です。

そこは、平滑化して補間してしまえ、という方法ではあります。



library(akima)

xdata <- runif(20)

ydata <- runif(20)

zdata <- rnorm(20)+0.2*xdata^2-0.5*xdata*ydata+0.9*ydata^2 #模擬データ

data <- data.frame(x=xdata, y=ydata, z=zdata)

with(data, contour(interp(x,y,z)))



ライブラリakimaをインストールしてからやってみてください~



参考:

3つめのURLに示されている方法を参照しました。

http://cse.naro.affrc.go.jp/takezawa/r-tips/r2.html

http://www.okada.jp.org/RWiki/?%A5%B0%A5%E9%A5%D5%A5%A3%A5%C3%A5%AF...

http://www.okada.jp.org/RWiki/?%BD%E9%B5%E9%A3%D1%A1%F5%A3%C1%20%A5...

没有评论:

发表评论