統計ソフト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...
没有评论:
发表评论