• ベストアンサー

統計処理ソフトRで2次曲線をプロットしたいのですが

統計処理ソフトRを使って,a*x^2 + b*y^2 + c*xy + d*x + e*y + f =0 の形の2次曲線をプロットしたいのですが、どのようにしてスクリプトを書けばいいのかわかりません。 紙の上だと標準化して回転させて書くということはわかりますしできるのですが、Rを用いてプロットするとなるとどうやればよいのかわかりません。。。いろいろ調べたつもりなのですが。。よければスクリプトを書いていただけると助かります。 検索用ワード:グラフ,二次形式,双曲線,楕円

質問者が選んだベストアンサー

  • ベストアンサー
  • ur2c
  • ベストアンサー率63% (264/416)
回答No.2

> xy平面に2次曲線をプロットしたい そっか、質問を読み違えました。ごめんなさい。 2次ならまず f(x,y) = 0 を y について解いて y = {g(x), h(x)} になおすのが簡単そうです。解くのは R でもできますけどめんどうなので、私なら Maxima の solve あたりを使うでしょう。絵は plot でも描けるし、ggplot ならもっときれいです。

ma209836845
質問者

お礼

丁寧な説明ありがとうございます。 やはりRだとめんどうなんですね、なにかちょうどいい感じの関数がないかと思って調べていたのですが、いくら調べても出てこないと思いました… Maximaは使ったことがないのですが、Mathematicaでもsolveという関数があった気がするのでそちらでできないかためしてみます。 本当にありがとうございました!またよろしくお願いします(^^)

その他の回答 (2)

  • ur2c
  • ベストアンサー率63% (264/416)
回答No.3

> xy平面に2次曲線をプロットしたい そっか、質問を読み違えました。ごめんなさい。 2次ならまず f(x,y) = 0 を y について解くのが簡単そうです。それは R でもできますけどめんどうなので、私なら Maxima の solve あたりを使うでしょう。絵は plot でも描けるし、ggplot ならもっときれいです。

  • ur2c
  • ベストアンサー率63% (264/416)
回答No.1

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))

ma209836845
質問者

補足

ありがとうございます~~!wireframeという関数があるのですね、参考になります。 ただ、今回は、xy平面に2次曲線をプロットしたいと考えていますので、できれば2次元プロットの仕方も考えていただけると助かります…。質問文の言葉が足りず申し訳ありません。。。

関連するQ&A

専門家に質問してみよう