Построение 3D тепловой карты в gnuplot

У меня есть 4D данные. Четвертый столбец необходимо представить как интенсивность цвета. Остальные три столбца будут представлять три разные оси. Я хочу создать трехмерную тепловую карту с помощью gnuplot. Как я могу это сделать?

Образец данных:

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


person user1539090    schedule 25.03.2013    source источник


Ответы (1)


Создание трехмерной тепловой карты в gnuplot аналогично созданию двухмерной тепловой карты, за исключением того, что вы добавляете дополнительный столбец в 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
person mgilson    schedule 26.03.2013