Участник:KorenkovVladimir/Gnuplot/3D
Материал из Xgu.ru
Автор: Владимир Кореньков
Эти заметки для личного пользования!!!
Содержание |
[править] Построение 3D поверхностей по табличным данным
[править] Начало
Выполнение скрипта:
# gnuplot -persist script
или в конец script дописать
pause время если pause -1 ждать до первого нажатия клавиши
[править] Формат файла данных
Пустые строки в файле с данными разделяют «столбцы» сетки с данными друг от друга, то есть задают сетку. Не изолинии.
В данном случае каждое следующее значение «x» отделено от другого пустой строкой. Файл такого формата будет адекватно отрисован в gnuplot с помощью комманд splot 'filename' with lines и with pm3d.
Файл без пустых строк-разделителей будет восприниматься gnuplot как описание одной длинной зигзагообразной линии.
Подробнее об этом написано в help datafile («Single blank records designate discontinuities in a `plot`; no line will join points separated by a blank records (if they are plotted with a line style)»).
В общем, формат данных, используемый в примере — такой:
x1 y1 z(x1,y1) x1 y2 z(x1,y2) ... x1 yM z(x1,yM) пустая строка x2 y1 z(x2,y1) x2 y2 z(x2,y2) ... x2 yM z(x2,yM) пустая строка ...
Добавить пустую строку через каждые 10 срок: # sed -i -e sed '0~10G' dates.txt
поменять местами столбцы файла: $ cut -f1 -d: test > tmp1 $ cut -f2 -d: test > tmp2 $ paste -d: tmp2 tmp1 > test Первая команда выбирает первое поле из файла test и помещает его во временный файл tmp1. Вторая команда выбирает второе поле и помещает его во временный файл tmp2. Затем командой paste эти файлы объединятся, разделяя строки символом :. Результат сохраняется в исходном файле test. Временные файлы удаляются. [1]
Положение изолиний рассчитывают все программы для построения графиков самостоятельно, интерполируя данные на сетке. Им только нужно дать эти самые данные в том формате, который они понимают. И указать, какие изолинии строить.
Я хочу заметить, что есть и другой формат данных, поддерживаемый gnuplot — в виде таблицы (matrix). В этом случае данные записаны в файле так:
z11 z12 z13 z14 ... (конец строки) z21 z22 z23 z24 ... (конец строки) z31 z32 z33 z34 ... (конец строки)
При использовании файлов такого формата после имени файлов в gnuplot нужно добавлять ключевое слово matrix. или см. тут [2]
[править] Мои скрипты
unset hidden3d set pm3d show pm3d set isosamples 1000 set xlabel "X" set ylabel "Y" set zlabel "Z" set dgrid3d splot "dates.csv" u 1:2:3 t "Approximation Dates"