У меня есть некоторые файлы данных с содержаниемpm3d в Gnuplot с двоичными данными
a1 b1 c1 d1
a1 b2 c2 d2
...
[blank line]
a2 b1 c1 d1
a2 b2 c2 d2
...
я сюжет это с помощью Gnuplot
splot 'file' u 1:2:3:4 w pm3d.
Теперь я хочу использовать бинарный файл. Я создал файл с помощью Fortran, используя неформатированный поток-доступ (прямой или последовательный доступ не работал напрямую). Используя gnuplot с
splot 'file' binary format='%float%float%float%float' u 1:2:3
Я получаю нормальный 3D-график. Однако команда pm3d не работает, так как у меня нет пустых строк в двоичном файле. Я получаю сообщение об ошибке:
>splot 'file' binary format='%float%float%float%float' u 1:2:3:4 w pm3d
Warning: Single isoline (scan) is not enough for a pm3d plot.
Hint: Missing blank lines in the data file? See 'help pm3d' and FAQ.
Согласно демо сценарию в http://gnuplot.sourceforge.net/demo/image2.html, я должен указать длину записи (которые я до сих пор не понимаю, справа). Однако, используя этот скрипт из демо-страницы, и команда с pm3d получает то же самое сообщение об ошибке:
splot 'scatter2.bin' binary record=30:30:29:26 u 1:2:3 w pm3d
Так как можно построить эти четыре размерных данные из двоичного файла правильно?
Редактировать: Спасибо, mgilson. Теперь он работает нормально. Только для записи: Мой FORtran кода-сниппета:
open(unit=83,file=fname,action='write',status='replace',access='stream',form='unformatted')
a= 0.d0
b= 0.d0
do i=1,200
do j=1,100
write(83)real(a),real(b),c(i,j),d(i,j)
b = b + db
end do
a = a + da
b = 0.d0
end do
close(83)
команды GNUPLOT:
set pm3d map
set contour
set cntrparam levels 20
set cntrparam bspline
unset clabel
splot 'fname' binary record=(100,-1) format='%float' u 1:2:3:4 t 'd as pm3d-projection, c as contour'