воскресенье, 22 июня 2014 г.

Gnuplot. Массивы данных


Пожалуй, основное назначение Gnuplot заключается в построении графиков на основе данных, полученных экспериментально или в ходе расчёта сторонней программой. Для этого предусмотрено большое число возможностей и настроек, мы рассмотрим лишь некоторые из них.


Допустим, у нас есть файл с данными, который, для удобства, размещён в корневом катологе программы (для Linux - в корневой папке пользователя).
По умолчанию, разделителем служит пробел, хотя данные могут быть разделены и другими знаками, запятой, например. В этом случае нужно использовать команду
set datafile separator ","
где в ковычках указан тип разделителя. График строится как и раньше:
plot 'sample1.dat'
Первый столбец будет служить абсциссой, второй - ординатой, а третий останется проигнорированным. Если нас интересует именно столбец "3", нужно сообщит от этом программе с помощью команды using:
plot 'sample1.dat' using 1:($3)
Аналогично, для построения зависимости третьего столбца от второго используется запись
plot 'sample1.dat' using ($2):($3)
(можно вместо "($2):($3)" записать "2:3").
Ещё вариант, мы хотим изобразить для каждого x из первого столбца среднее значение столбцов "2" и "3". Тогда используем команду
plot 'sample1.dat' using 1:($2+$3)/2
Здесь можно было записать любую другую функцию, которая нас интересует, например "using 1:sin($2+$3)". Если же функция берётся только от значений второго столбца, есть более простая форма записи
plot 'sample1.dat' thru f(x)
которая означает "plot 'sample1.dat' using 1:(f($2))".

Часто требуется применить к графику сглаживание. В Gnuplot для этой цели служит команда smooth с параметром, определяющим вид сглаживания. Параметры unique и frequency приводят график к виду монотонной зависимости, т.е. исключают ситуации, когда одному x соответствует несколько y. При этом unique находит среднее значение y, а frequency - сумму. В обоих случаях график будет построен ломаными линиями.
    plot 'sapmle1.dat' smooth unique
Сделать график более плавным можно с помощью кубических сплайнов (cspline) или кривых Безье (bezier). Причём для сплайна нужно указать веса каждой точки с помощью команды using. Их можно задать функционально или прописать в файле данных. В простейшем случае, когда веса одинаковы и равны 1, команда будет выглядеть следующим образом:
    plot 'sample1.dat' using 1:2:(1.0) smooth cspline
Трёхмерные графики строятся командой splot. Соответственно, каждая строка файла данных должна содержать не две, а три координаты. Но о трёхмерных графиках мы поговорим как-нибудь в другой раз.

Комментариев нет:

Отправить комментарий