Участник:KorenkovVladimir/Gnuplot/3D

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

Автор: Владимир Кореньков

Эти заметки для личного пользования!!!

Содержание

[править] Построение 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"