Gnuplot не может генерировать 4d контурные графики.
Но если я правильно понял, у вас есть специальный случай, у вас действительно нет данных 4d. Координата z зависит от x и y таких, что точка находится на сфере. Возможно, это можно использовать для получения контуров.
Я предполагаю, что файл данных содержит точки данных для полной сферы, расположенные по кругу от нижней к верхней части сферы, каждая окружность в отдельном блоке.
Я попытался это:
- Отдельные точки на верхней половине из точек нижней части сферы, нам нужно это разделение для знака г.
- Постройте контуры двух половин в двух файлах данных contour_l.dat и contour_u.dat. Это будет отображать только координаты x и y.
- Объединить исходный файл данных и два файла данных контура в один график. Pythagoras мог помочь восстановить координаты 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, я получаю следующий результат:
Как вы можете видеть, это еще не совершенны. Контур при x = 0 должен быть исследован, и если я удалю линию "sh.dat" w pm3d
, изображение станет очень странным.
Но, по крайней мере, этот подход может быть отправной точкой, можно попытаться вручную воспроизвести файлы данных контурной линии.
Gnuplot не может делать это из коробки. В любом случае вам нужно подготовить свои данные с отдельной программой до ее создания. Но я не могу сказать вам, как ... – Christoph