2016-12-14 62 views
0

私は4DのデータX、Y、Zとフィールドを持っています。球に限定されたフィールドの4Dプロットをしたいと思います。私は既にsplot w pm3dを使用して球上のカラーバーを自分のフィールドでインデックス化していますが、3D輪郭線を追加できればもっと読みやすくなります。gnuplotの4D等高線プロット

私はhttp://www.originlab.com/index.aspx?go=Products/Origin/Graphing

で「関数のプロット」(タンパク質の向き)の最後の例のような何かをしたいと思いますがgnuplotの中、それも可能ですか?もしそうなら、それを行う方法?

+0

Gnuplotはこれをすぐに実行することはできません。いずれの場合でも、データをプロットする前に別のプログラムでデータを準備する必要があります。しかし、私はあなたにどのように伝えることができません... – Christoph

答えて

1

Gnuplotは4d等高線プロットを生成できません。

私は正しく理解していれば特別なケースがありますが、実際には4dデータはありません。 z座標は、点が球上にあるようにxとyに依存します。たぶん、これは輪郭を取得するために使用することができます。

データファイルに、完全な球体のデータポイントが含まれていると仮定します。球体の下から上に円で囲まれ、各円は別々のブロックに配置されています。

私はこれを試してみました:上半分

  • 別の点を球の下半分のポイントから、私たちは、zの符号のためにこの分離を必要とします。
  • 2つのデータファイルcontour_l.datとcontour_u.datに2つのハーフの輪郭をプロットします。これは、x座標とy座標だけをプロットします。
  • 元のデータファイルと2つの等高線データファイルを1つのプロットに結合します。ピタゴラスは、等高線データファイルのz座標を再構成するのに役立ちます。

これはスクリプトです:

set pm3d depthorder interpolate 5,5 
set hidden3d front 

unset surface 
set contour surface 

set zrange [0:1.1] 
set table "contour_u.dat" 
splot "sh.dat" using 1:2:4 w l 
unset table 

set zrange [-1.1:0] 
set table "contour_l.dat" 
splot "sh.dat" using 1:2:4 w l 
unset table 

set surface 
unset contour 

set xrange [-1.1:1.1] 
set yrange [-1.1:1.1] 
set zrange [-1.1:1.1] 
set xyplane relative 0.0 

set terminal pngcairo size 640,640 
set output "c.png" 

unset key 

splot "sh.dat" using 1:2:3:4 w pm3d, \ 
     "contour_u.dat" using 1:2:(sqrt(1.0-($1*$1+$2*$2))):3 w l lc rgb "black",\ 
     "contour_l.dat" using 1:2:(-sqrt(1.0-($1*$1+$2*$2))):3 w l lc rgb "black" 

あなたはデータを投稿していなかったので、私は球面調和関数の一つをとっています。 gnuplotの4.6では、私は次のような結果を得る:あなたが見ることができるように

sphere with pm3d and contour lines

を、それはまだ完璧ではありません。 x = 0の輪郭を調べて、"sh.dat" w pm3d行を削除すると画像が非常に奇妙になります。

しかし、少なくともこの方法が出発点になる可能性があります。輪郭線のデータファイルを手動で再生しようとする可能性があります。

関連する問題