0

私は4Dデータを持っています。4 番目の列は、色の強度として表す必要があります。他の 3 つの列は、3 つの異なる軸を表します。gnuplot を使用して 3D ヒートマップを生成したいと考えています。これどうやってするの?

データ サンプル:

0 0 0 16

0 0 1 25

0 1 0 27

0 1 1 29

1 0 0 8

1 0 1 44

1 1 0 50

1 1 1 27

4

1 に答える 1

1

gnuplot で 3D ヒートマップを生成することは、追加の列を に追加することを除いて、2D ヒートマップを生成することと同じですusing。つまり、データファイルは一連の「スキャン」をレイアウトし、隣接する「スキャン」は四角形で接続されます。例えば

x1 y1 z11 c11
x1 y2 z12 c12
x1 y3 z13 c13
...
x1 yN z1N c1N
                 #blank line here
x2 y1 z21 c21
x2 y2 z22 c22
...
x2 yN z2N c2N
                 #blank line here
.
.
.
                 #blank line here
xN y1 zN1 cN1
xN y2 zN2 cN2
...
xN yN zNN cNN

これで、 を使用してこれをプロットできますsplot 'datafile' u 1:2:3:4 w pm3d

*特定の「スキャン」に沿った x 値は一定である必要はないことに注意してください。最初はそのように視覚化する方が簡単です。

非常に単純な例として、++特殊ファイルを使用できます。

set xrange [0:2*pi]
set yrange [0:2*pi]
splot '++' using 1:2:2:(sin($1)*sin($2)) with pm3d

次の疑似コードを使用して、同じデータファイルを作成できます。

do iy=0, ny
   y = (2*pi/ny)*iy
   do ix=0, nx
      x = (2*pi/nx)*ix
      z = y
      write x,y,z,sin(x)*sin(y)
   enddo
   write blank space
enddo
于 2013-03-26T02:52:12.263 に答える