- ベストアンサー
統計処理ソフトRで2次曲線をプロットしたいのですが
統計処理ソフトRを使って,a*x^2 + b*y^2 + c*xy + d*x + e*y + f =0 の形の2次曲線をプロットしたいのですが、どのようにしてスクリプトを書けばいいのかわかりません。 紙の上だと標準化して回転させて書くということはわかりますしできるのですが、Rを用いてプロットするとなるとどうやればよいのかわかりません。。。いろいろ調べたつもりなのですが。。よければスクリプトを書いていただけると助かります。 検索用ワード:グラフ,二次形式,双曲線,楕円
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> xy平面に2次曲線をプロットしたい そっか、質問を読み違えました。ごめんなさい。 2次ならまず f(x,y) = 0 を y について解いて y = {g(x), h(x)} になおすのが簡単そうです。解くのは R でもできますけどめんどうなので、私なら Maxima の solve あたりを使うでしょう。絵は plot でも描けるし、ggplot ならもっときれいです。
その他の回答 (2)
- ur2c
- ベストアンサー率63% (264/416)
> xy平面に2次曲線をプロットしたい そっか、質問を読み違えました。ごめんなさい。 2次ならまず f(x,y) = 0 を y について解くのが簡単そうです。それは R でもできますけどめんどうなので、私なら Maxima の solve あたりを使うでしょう。絵は plot でも描けるし、ggplot ならもっときれいです。
- ur2c
- ベストアンサー率63% (264/416)
library(lattice) xa <- seq(-1,1,len=30) ya <- seq(-1,1,len=30) g <- expand.grid(x=xa,y=ya) f <- function(x,y){x^2-y^2} for (i in 1:(dim(g)[1])){g$z[i] <- f(g$x[i],g$y[i])} wireframe(z ~ x * y,data=g,xlab="x",ylab="y",zlab="z",screen=c(x=-40,y=-45,z=-50))
補足
ありがとうございます~~!wireframeという関数があるのですね、参考になります。 ただ、今回は、xy平面に2次曲線をプロットしたいと考えていますので、できれば2次元プロットの仕方も考えていただけると助かります…。質問文の言葉が足りず申し訳ありません。。。
お礼
丁寧な説明ありがとうございます。 やはりRだとめんどうなんですね、なにかちょうどいい感じの関数がないかと思って調べていたのですが、いくら調べても出てこないと思いました… Maximaは使ったことがないのですが、Mathematicaでもsolveという関数があった気がするのでそちらでできないかためしてみます。 本当にありがとうございました!またよろしくお願いします(^^)