Найти в Дзене

GNUPlot, работаем в Linux

Билль о правах:
ВНИМАНИЕ ЭТО ВАЖНО! Весь текст данной статьи создан и написан мной. Включая синтаксис команд. В случае перепечатки материалов обязательным требованием от меня ссылка на статью сюда. Впервые опубликовано здесь! Не секрет, что нынче многие программы, созданные в мире GNU имеют сборки под любые популярные операционные системы. Не исключение и GNUPlot. Я использую его как под управлением Windows 10, так и под Linux. В обеих ОС есть свои особенности работы, однако это больше дело вкуса. Принципы в основном одинаковые. Два режима работы: командный и пакетный.
В командном вы режиме реального времени вводите команды, а программа их выполняет. В пакетном режиме вы используете скрипты для обработки данных. Есть некоторые сложности в использовании новых версий Gnuplot в Linux. На сегодняшний день (на 22 февраля 2025 года) я не вижу в репозиториях Gnuplot версии 6, а в ней исправлена критическая ошибка, которая мешала раньше работать в терминале wxt -- самом удобном на сегодняшний

Билль о правах:
ВНИМАНИЕ ЭТО ВАЖНО! Весь текст данной статьи создан и написан мной. Включая синтаксис команд. В случае перепечатки материалов обязательным требованием от меня ссылка на статью сюда. Впервые опубликовано здесь!

Не секрет, что нынче многие программы, созданные в мире GNU имеют сборки под любые популярные операционные системы. Не исключение и GNUPlot. Я использую его как под управлением Windows 10, так и под Linux. В обеих ОС есть свои особенности работы, однако это больше дело вкуса. Принципы в основном одинаковые. Два режима работы: командный и пакетный.
В командном вы режиме реального времени вводите команды, а программа их выполняет. В пакетном режиме вы используете скрипты для обработки данных.

Есть некоторые сложности в использовании новых версий Gnuplot в Linux. На сегодняшний день (на 22 февраля 2025 года) я не вижу в репозиториях Gnuplot версии 6, а в ней исправлена критическая ошибка, которая мешала раньше работать в терминале wxt -- самом удобном на сегодняшний день терминале.

Чтобы получить GNUPlot последней стабильной версии необходимо его собрать из исходников, а если вы хотите в Linux ещё и wxt, то придётся установить wXwidgets. Как это делать, сейчас не буду писать, а то вместо статьи про работу в Linux я скачусь к установке ПО и пользованию им, что мне и пришлось сделать. Сборку в том числе wxt, чтобы gnuplot чувствовал себя хорошо.
Сборку и адаптацию под Debian, MInt и ... AltLinux я опишу позже. К тому же подскажу, как это сделать проще.

Ну вот, мы установили gnuplot и вот что делаем.
Если вы приверженец кнопок и пришли с windows с целью орборсать консоль, то переходите сразу на SciDavis, матлаб или подобный софт, можете зарсрарть комментарий даже. Я поржу, когда у вас упадет одно из этих приложений при обработке миллиардов строк экспериментальных данных.

---------------------------------------------------------------------------------

Пользоваться терминалом также очень удобно, потому что его вывод можно вставить в текст статьи:

al@il:~$ gnuplot
G N U P L O T
Version 6.1 last modified 2025-02-20
Copyright (C) 1986-1993, 1998, 2004, 2007-2025
Thomas Williams, Colin Kelley and many others
gnuplot home: http://www.gnuplot.info
mailing list: gnuplot-beta@lists.sourceforge.net
faq, bugs, etc: type "help FAQ"
immediate help: type "help" (plot window: hit 'h')
Terminal type is now unknown

Картинки? Пожалуйста!

 Гнуплоты на разных машинках, а выглядят все одинаково.
Гнуплоты на разных машинках, а выглядят все одинаково.

Теперь приступаем.
Хочу создать график, который будет повторять тот же график, который я сделал под windows. А ещё мне очень хочется чтобы я мог запускать скрипт как программу, чтобы можно было быстро продемонстрировать декартовы координаты.

Вообще, как в Windows, так и в Linux, мы можем создать скрипты, которые будут запускаться по двойному клику мышки. Достаточно написать в "шапке" файла сценария:

#!/usr/bin/gnuplot

Эта инструкция подскажет любой Unix-подобной системе -- где искать программу для исполнения кода. И мне будет достаточно после сохранения, назначить файлу право для его выполнения как программы.

$ chmod a-rwx file.gpl

Мы присвоили своему исполняемому файлу имя file.gpl
На самом деле, в linux для идентификации типа файла не требуется расширение Оно требуется больше для людей, чем для программ, так проще сменить приложение для открытия текстовых файлов, например *.csv.

Далее используем наш скрипт для создания поля графика. Ну и сразу же нарисуем единичную окружность, она нам пригодится в будущем.

#! /usr/bin/gnuplot --persist
# устанавливаем вывод в SVG
set terminal svg
# задаем файл вывода
set output 'circ.svg'
# установим сетку
set grid
# установим квадратное поле
set size square
# включаем параметрический режим (начинается математика)
set parametric
# устанавливаем жирность и цвет осей
set xzeroaxis lt 1 lw 1 lc "#000000"
set yzeroaxis lt 1 lw 1 lc "#000000"
# Отключаем кантик
unset border
#set label "g" offset 15, 7 rotate by 45
# устанавливаем диапазоны
set xrange [-2.5:2.5]
set yrange [-2.5:2.5]
# печатаем:
plot 'axes.csv' using 1:2:3:4 with vectors notitle, [0:2*pi] sin(t), cos(t) not>

получаем (немного доделана в Inkscape):

-2

Теперь можно использовать созданный файл для рисования формы графика.

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