Найти в Дзене
Алексей Хэликоптер

GNUPLOT. Диапазон файла данных

О гнуплоте. (На английском). Иногда для исследования процессов человеку требуется собрать много данных и отобразить их в виде графика (я, честно, до сегодняшнего дня так и не нашёл серьёзного применения гнуплоту, это не значит, что его не существует). С примитивным графиком, массив данных которого составляет 1000 значений справится MS Excel, LO Calc и подобные, а построить простую синусоиду можно с помощью любой онлайн системы.
Сделать же выборку из диапазона данных в указанных программах намного труднее для компьютера, но этот вопрос не касается данной статьи. Итак, к делу. every -- указание гнуплоту, какие данные из каких блоков данных ему использовать для построения графика. Дано: файл данных, содержащий 450 тысяч строк. (название "1ch.txt")
диапазон данных находится в интервале от 3001 до 6000 строки файла
одна строка содержит набор данных из 4 категорий, первый столбец -- аргумент функции y=f(x) Задача: вывести в терминал wxt два графика на одном поле в заданном условием интерва

О гнуплоте. (На английском).

Иногда для исследования процессов человеку требуется собрать много данных и отобразить их в виде графика (я, честно, до сегодняшнего дня так и не нашёл серьёзного применения гнуплоту, это не значит, что его не существует).

С примитивным графиком, массив данных которого составляет 1000 значений справится MS Excel, LO Calc и подобные, а построить простую синусоиду можно с помощью любой онлайн системы.
Сделать же выборку из диапазона данных в указанных программах намного труднее для компьютера, но этот вопрос не касается данной статьи.

Итак, к делу.

every -- указание гнуплоту, какие данные из каких блоков данных ему использовать для построения графика.

Дано:

файл данных, содержащий 450 тысяч строк. (название "1ch.txt")
диапазон данных находится в интервале от 3001 до 6000 строки файла
одна строка содержит набор данных из 4 категорий, первый столбец -- аргумент функции y=f(x)

Задача:

вывести в терминал wxt два графика на одном поле в заданном условием интервале строк.

гнуплот решает данную проблему за пару секунд.

gnuplot> set terminal wxt
Terminal type is now 'wxt'
Options are '0 enhanced'

gnuplot> plot '1ch.txt' every ::3000::6001 using 1:2 with lines axes x1y1, '1ch.txt' every ::3000::6001 using 1:3 with lines axes x1y2,

вот здесь мы и применяем загадочную команду every:
на человеческом языке это звучит как: "напечатай '1ch.txt' возьми строку 3001 и закончи строкой 6001 используя колонки 1:2 изобрази линиями используя оси x1y1, напечатай '1ch.txt' возьми строку 3001 и закончи строкой 6001 используя колонки 1:3 изобрази линиями используя оси x1y2".

Так как первая строка в файле данных имеет номер 0, то 3001 будет имет номер 3000, что и отражено в управляющей команде.

результатом будет примерно следующее:

результат вывода графика из файла данных с выборкой от строки 3001 до строки 6001
результат вывода графика из файла данных с выборкой от строки 3001 до строки 6001

В результате мы получили график двух наборов данных, имеющих одну ось X и две оси Y.
Отдельные команды позволяют внести свои правки в оформление графика и сделать его нескучным по внешнему виду, либо свести всё оформление к минимуму. Здесь уже всё зависит от потребности.

На этом всё.