• 締切済み

gnuplot 4次元データ(3次元座標における値)の表示

まず、次のようなデータファイルがあります。 ----- x1, y1, z1, f1 x2, y1, z1, f2 x3, y1, z1, f3 x1, y2, z1, f4 x2, y2, z1, f5 x3, y2, z1, f6 以下、延々と続く。 ----- gnuplotで、zをz1に固定して、xy平面上に、fを立体的に表示する 方法があれば教えてください。 なお、pm3d で平面にカラーマップを表示する方法は分っています。

みんなの回答

回答No.3

> 座標(x,y,z)における値がfであるデータファイル(質問に書いたような > ファイル)をgnuplotで表示するにあたり、z=z1の場合のみのfを > 三次元座標空間に表示したいということです。 申し訳ありませんが、何をしたいか解りません。 x,y,z,f と値が 4 つ有りますが、三次元それぞれの軸として使いたいのは、それぞれどういった値なのでしょう? それぞれの軸の値としては、x,y,f を使いたい気がするのですが、それでは > splot "data-file" using 1:2:4 with pm3d > ですと、zを選択的に表示できないので困っています。 > 何かオプションでzを選択的に表示できるようになるのでしょうか? >         ^^^^^^^^^^^^^^^^ の意味がわかりません。 ##z の値もプロットに使ったら、4 次元になってしまうし....。 ひょっとして、z の値でマスクしたい? それなら、例えば using ($1):($2):($3 != 1 ? 1/0 : $4 ) で z が 1 の時だけプロットできますが....。

happihappy
質問者

お礼

記述内容は理解できていませんが、 そのようにしたらできました。 どうもありがとうございます。 選択的というのは回答2のお礼の欄に書いたように たくさん存在するzの中からz=z1のように指定したzの値の ときのみを表示するという意味で書きました。

回答No.2

> zを選択的に表示できないので困っています。 4 次元グラフを作ろうとしている訳ではないでしょうから、ラベルか何かに使いたいという事でしょうか? それなら、私も解りません。ひょっとすると、 http://ayapin.film.s.dendai.ac.jp/cgi-bin/trees.cgi なら回答が得られるかも。 そうではなく、例えば「x?*z? 等計算の元となる数値として使いたい」という事なら、どういつ業にあるなら、矢っ張り using で出来ますが.....。

happihappy
質問者

お礼

掲示板の紹介ありがとうございます。 座標(x,y,z)における値がfであるデータファイル(質問に書いたような ファイル)をgnuplotで表示するにあたり、z=z1の場合のみのfを 三次元座標空間に表示したいということです。 回答の最後の行は分かりません。

回答No.1

> x1, y1, z1, f1 <snip> > gnuplotで、zをz1に固定して、xy平面上に、fを立体的に表示する これは結局、f? の最後の列を 3 つ目の軸 (次元) としてプロットすれば良いのでしょうか? そうであるなら、using を使えば良いと思います。

happihappy
質問者

お礼

回答ありがとうございます。 splot "data-file" using 1:2:4 with pm3d ですと、zを選択的に表示できないので困っています。 何かオプションでzを選択的に表示できるようになるのでしょうか? 質問では省略していますが、zの値も、z1, z2, z3と 続くのです。

関連するQ&A

  • 3次元空間で3点を通る平面を2次元座標で表すには

    3次元のベクトル(?)に関して質問させてください。 いまxyz座標の3次元空間の中に原点O(0,0,0), 点A(ax,ay,az), 点B(bx, by, bz)の3つの点があるとします。 3次元空間の中に3つの点があるので、これら3点を通る平面がひとつだけ決まります。 この平面がXY平面となるような、新しいXYZ空間を下記の条件で定義したいです。 原点O(0,0,0)に対応する点   → O'(0, 0, 0) 点A(ax,ay,az)に対応する点  → A'(αx, 0, 0) ただし αx = √(ax^2 + ay^2 + az^2) 点B(bx, by, bz)に対応する点 → B'(βx, βy, 0) このときのβx, βyの決め方を教えていただけないでしょうか? (おそらくβyの符号で2通りあると思います) ----- 具体的な目的は、以下のようなものです。 xyz座標の関数として値が決まるf(x, y, z)があります。 これを点O, A, Bを通る平面上でメッシュを切って計算しました。 この結果をgnuplotのpm3d mapでグラフ化したいのですが、gnuplotの入力は以下のようなフォーマットです。 X1 Y1 f(x1,y1,z1) X2 Y2 f(x2,y2,z2) X3 Y3 f(x3,y3,z3) X4 Y4 f(x4,y4,z4) ... そこでxyz空間の平面OAB上の点Pn(xn,yn,zn)を対応するXY平面上の点Pn'(Xn,Yn)に変換したいです。 よろしくお願いします。

  • gnuplotでx,y,z軸の3次元にf(x,y,z)値をプロットしていくことはできますか?

    gnuplotでx,y軸とf(x,y)が3次元に表示させる方法は調べて分かったのですが、質問タイトルのようにx,y,z軸が存在する領域にf(x,y,z)を表示させるにはどうしたら良いのでしょうか?

  • 高校数学、立体座標に関する質問

    (問題)そのままです xyz空間において、0≦x≦1、0≦y≦1、0≦z≦1、x^2+y^2+z^2-2xy-1≧0が成り立つ。 この立体を平面z=tを切ったときの断面をxy平面に図示し、この断面の面積S(t)を求めよ。 (疑問) z=t(tは0≦t≦1)を満たす。とすると、 x^2+y^2+t^2-2xy-1≧0⇔(y-x)^2≧1-t^2 ⇔y-x≦ー√(1-t^2)または√(1-t^2)≦y-x ⇔y≦x-√1-t^2またはx+√(1-t^2)≦y(√1-t^2は定数と考えられるから、xy平面を考えればよいという方針) 図示した結果が添付画像の左です。 (疑問) z=tを満たす平面というのは右の赤点(kと書かれています、ごめんなさい)を通ってxy平面に平行ということですよね?そうすると本問の結果(右の画像)から考えると、、xy軸は直線ではない(平面のように広がっている)ということになりませんか? それとも本問のxy平面というのは空間上のものではないのでしょうか? 変な事を言っていたらごめんなさい。

  • 極座標による2重積分

    z=4-x^2-y^2とxy平面とで囲まれた立体の体積 どうして0≦r≦2になるとか、∬の前に2がつくのとか全然わかりません(泣) できれば全部の解答お願いします・・・

  • 立体の体積 極座標 (二重積分)

    次の立体の体積を求めよ。 (1)曲面z=4-(x^2)-(y^2)とxy平面で囲まれた立体 (2)球(x^2)+(y^2)+(z^2)=4が、円柱(x^2)+(y^2)=2xで切り取られる部分。 二重積分と極座標を用いるってのはわかりましたが、半径をr,角度をθとすると、それらの積分区間がわかりません。よろしくお願いします。

  • 3次元座標の求め方

    3次元座標の求め方 原点 0,0,0 を中心にした球体面上の正面から見た頂点座標で、 回転による移動後の座標の求め方を知りたいです。 例えば、球面の半径が 100 で、頂点の座標 x1, y1, z1 が 100, 0, 0 にある場合、 Y軸に対してπ/2 rad (90度)回転した座標 x2, y2, z2 は 0, 0, -100 になると思うのですが、 この新たな3つの座標 x2, y2, z2 を導くにはどのように計算しているのでしょうか。 平面上の円運動のように cos sin の組み合わせ等で導き出せるのでしょうか。 x1, y1, z1 から、 Y軸に対してr回転 した場合の各 x2, y2, z3 の出し方 X軸に対してθ回転 した場合の各 x3, y3, z3の出し方 Z軸に対してΘ回転 した場合の各 x4, y4, z4 の出し方 のような形で、導くための計算を順にお教えいただけると嬉しいです。 最終的には、元座標 x, y, z をY軸にr、更にそこからX軸にθ、更にそこからZ軸にΘで X, Y, Z になる、といった形で求められるようになりたいと思っています。 座標は原点 0, 0, 0を中心に 上に行くほどYが「減少」 右に行くほどXが「増加」 奥に行くほどZが「増加」 Y減少 ↑ _ Z増加 │/` ├─→ X増加 という形になっています 自分のわかる限りで質問内容を細かく記述したつもりですが、 数学の知識に乏しいので、記号などの使い方や説明の不備があるかもしれません。 何か不足があった場合には補足させて頂きます。 以上宜しくお願い致します。

  • 座標変換

    3次元(x,y,z)物体の回転でよくx軸、y軸、z軸で回転がありますが、xy平面との角度φを回転させたいときはどうすればいいでしょうか? xy平面との角度をφ回転させた後の座標(X,Y,Z)はどうなるのでしょうか? また X     x Y = T・y Z     z このような行列Tが存在するのでしょうか?

  • 3次元グラフ

    実験から得た3つの変数のデータ(x,y,z)をgnuplotに入力して3次元のグラフを作ったのですが、そのグラフのz=f(x,y)の近似関数を知りたいです。どうすればよいのでしょうか? gnuplotを使ったことがなくて全く分かりません。 宜しくお願いします。

  • エクセルを用いた3次元座標変換

    3次元座標空間において、座標軸を回転移動させて三つの基準座標点のz座標をすべて0にする方法を教えていただけないでしょうか。 例:(x1,y1,z1), (x2,y2,z2), (x3,y3,z3) →(回転移動)→ (x1',y1',0), (x2', y2', 0), (x3', y3', 0)  よろしくお願いします。

  • 3次元座標2点からの直線式の求め方

    お世話になります。 3次元座標2点からの直線式(ax+by+cz=0)の求め方を教えて下さい。 2次元座標であれば、1つの傾きから算出できるのですが、3次元座標になると、X-Y平面、Y-Z平面での傾きの使い方がこんがらかってしまいます。 基本的な質問で申し訳ありませんが、よろしくお願い致します。 座標1 = (x1,y1,z1) 座標2 = (x2,y2,z2) 以上

専門家に質問してみよう