Gnuplot — предок утилит для построения графиков
В своей колонке я рассмотрел некоторые пакеты для проведения научных расчетов в различных областях исследований. Также я не обошел вниманием различные пакеты для графического представления результатов этих расчетов. Но до этого времени я все еще не рассматривал gnuplot ( http://www.gnuplot.org ). Программа gnuplot известна с середины 1980-х годов и, таким образом, является одной из старейших программ для построения графиков. Ввиду долгого существования, программа была портирована на большинство используемых операционных систем. В данной статье я рассмотрю основные характеристики программы gnuplot и опишу различные способы ее использования.
Gnuplot является программой с интерфейсом командной строки. Благодаря этой особенности данная программа используется для построения графиков совместно с некоторыми другими приложениями, такими, как octave. Следовательно, вы могли использовать gnuplot, даже не подозревая об этом. Вы можете использовать gnuplot несколькими способами. Программа может не только принимать данные для построения графика, но и строить графики для заданных функций. Gnuplot может осуществлять вывод как на экран (выводя статический или интерактивный график), так и в файл одного из множества поддерживаемых форматов. Дополнительно существует множество функций для настройки отображения графиков, изменения обозначений графиков и осей координат, а также изменения других параметров.
Давайте начнем работу с установки gnuplot. Бинарные пакеты существуют для множества различных операционных систем. Большинство дистрибутивов Linux также должны предоставлять возможность использования пакета gnuplot, поэтому установка не будет вызывать затруднений. Если же вам необходимы функции из новейших версий программы, вы всегда можете скачать исходные коды и самостоятельно произвести сборку gnuplot.
Как только пакет gnuplot установлен, вы можете начать работу с ним, выполнив команду gnuplot . При вызове программы таким способом, для ввода команд будет запущена интерактивная сессия. Давайте начнем работу с попытки построения графика для простейшей функции. У вас должна быть возможность построения графиков для всех функций, используемых при работе с языками программирования C, FORTRAN и BASIC. Эти математические выражения могут формироваться с использованием таких встроенных функций, как abs(x) , cos(x) или Bessel . При работе с этими функциями вы можете использовать целые, действительные и комплексные типы аргументов.
Рисунок 1: При использовании команд для построения графиков открываются окна с выводом результатов
Рисунок 2: Простой график для функции sin(x)/x
Рисунок 3: Вы можете построить графики нескольких функций в одной системе координат
Рисунок 4: Gnuplot может работать даже с трехмерными графиками
В результате будет выведена страница из документации gnuplot, относящаяся к команде plot .
Существуют два метода изменения представления графиков, создаваемых gnuplot. Первый метод заключается в использовании дополнительных аргументов команд plot и splot . В этом случае вы можете задавать значения таких параметров, как заголовок графика, обозначение осей или стиль графика. Доступными стилями графиков являются: линии (lines), точки (points), линии с точками (linespoints), импульсы (impulses), штрихи (dots), шаги (steps, fsteps, histeps), значения отклонений (errorbars, xerrorbars, yerrorbars, xyerrorbars). Для работы с одним из стилей вы можете добавить параметр, используя ключевое слово with . Таким образом, если вы хотите отобразить на графике и линии и точки, вы должны добавить выражение with linespoints к вашей команде plot . Вы также можете использовать краткую запись этих параметров. Вместо with может использоваться w . Вместо параметра title может использоваться t . Вместо приведенного выше параметра using вы также можете использовать u .
Данные команды позволяют осуществить с помощью gnuplot подбор кривых для данных из столбцов 1 и 2 файла data_file.dat с использованием функции, заданной с помощью выражения f1(x) .
Когда программное окружение для проведения исследований в определенной области подготовлено, вы можете сохранить все сделанные вами настройки с помощью команды save . Данная команда на самом деле сохраняет все использованные вами команды gnuplot в текстовый файл. Данный текстовый файл может быть загружен после открытия новой сессии gnuplot с помощью команды load . Она позволяет получить из файла все сохраненные команды и выполнить их в рамках новой сессии.
Вы всегда можете увидеть список установленных вами параметров, использовав команду show . Эта команда выводит значения параметров, установленные в ходе текущей сессии. Для вывода списка всех параметров следует использовать команду show all . Иногда после изменения параметров программа начинает работать не так, как вы ожидаете. Следует помнить о том, что вы всегда можете установить значение по умолчанию для любого параметра, значение которого было изменено с помощью команды set , просто использовав команду reset . Эта команда изменяет значения параметров на их значения по умолчанию в рамках сессии.
Иногда вам может возникнуть необходимость взаимодействия с системой, в которой работает gnuplot. В этих случаях вам придется открывать сессию командной оболочки из gnuplot. Существует два способа выполнения этой задачи. Первый способ заключается в использовании команды system . В этом случае вы можете передать строку, содержащую системные команды для их выполнения вне gnuplot. Второй способ заключается в использовании команды ! . На самом деле эта команда является всего лишь краткой формой записи команды system и эти команды являются взаимозаменяемыми.
В данной статье освещены только основные функции, предоставляемые программой gnuplot. Наверняка вам потребуется дополнительное время на более глубокое изучение документации с целью получения информации о дополнительных возможностях анализа ваших данных. Даже в том случае, если вы непосредственно не используете gnuplot, дополнительная информация о данной программе поможет вам в работе с такими приложениями, как octave. Рассматривайте эту статью как отправную точку в исследовании возможных способов анализа данных.
Источник
советы
20071004
Сравнение 9 программ для построения графиков
Как известно, среди пользователей GNU/Linux довольно много людей из академической среды, то есть тех людей, которые наблюдают, измеряют, вычисляют, сравнивают и пишут в конечном итоге научные статьи. Эта работа обычно сопряжена с графическим представлением информации или визуализацией. В простонародье — построением графиков. Именно о программах, для этого предназначенных, и пойдёт речь.
Я сравнил 9 свободных программ для визуализации двумерных и одномерных данных. Все эти программы доступны в GNU/Linux, а многие — доступны и пользователям других операционных систем. Все 9 программ позволяют строить такие графики, которые не стыдно показывать или печатать. Это то, что называется «publication quality».
Выбор программ ограничен теми, которые предназначены для визуализации одномерных или двумерных данных. Под одномерными (1D) данными я подразумеваю отображение одного одномерного множества на другое, например функциональную зависимость . Под двумерными (2D) данными я подразумеваю отображение двумерного множества на одно- или двумерное, например функциональную зависимость
или векторно-значную функцию заданную на плоскости. На мой взгляд, именно визуализация одно- и двумерных данных — самая распространённая задача.
Программы, ориентированные в первую очередь на визуализацию многомерных данных, из сравнения исключены. Однако упоминания все эти программы вполне заслуживают: OpenDX, VTK, MayaVi, Vis5D+. Всё это интересная, но уже совсем другая история. Так же в сравнении не учавствовали программы для построения графов и для других, экзотичных, способов визуализации. Из них стоит упомянуть graphviz и prefuse.
Итак, в сравнении учавствовалии:
- gnuplot — ветеран отрасли, поэтому с ним знакомы и умеют работать почти все, кому нужны графики; я сам пользуюсь им с удовольствием, поскольку с помощью всего одной-двух коротких команд можно сносно отобразить данные;
- Gri — менее известный проект, фактически язык программирования для рисования научных графиков; изначально активно использовался для представления географической информации, поэтому здесь полный порядок с изолиниями и цветовыми картами;
- matplotlib — сравнительно молодой, но богатый возможностями и активно развивающийся проект, является библиотекой для языка Python; особенность matplotlib — синтаксис, приближенный к MATLAB; отсюда и второе название проекта: pylab;
- PyX — другой пакет для визуализации с помощью Python; выбор между matplotlib и PyX во многом дело вкуса, но надо отметить, что некоторые вещи естественнее делать в одном, а другие — в другом (см. таблицу);
- Tioga — библиотека для языка Ruby, использующая PDFLaTeX для отрисовки графиков; как следствие — радующий глаз качественный результат, но достаточно крутая кривая обучения (кроме освоения Ruby потребуется разобраться с самой тиогой);
- Ctioga — та же самая Tioga для тех, кто хочет сейчас и сразу; параметры графика задаются из командной строки, а для его рисования уже используется Tioga; к сожалению, годится Ctioga только для одномерных данных, но для них вполне может заменить gnuplot;
- GNU plotutils — они же утилитка graph; лично я нахожу её интерфейс менее интуитивным и удобным для работы, а возможности более ограниченными, чем у других программ; однако входящая в тот же пакет библиотека libplot может быть интересна с точки зрения написания своих программ для построения графиков;
- plotmtv — далеко не новый проект, и, как мне кажется, находящийся в стагнации; отлично справляется с двумерными скалярными и векторными данными; основной недостаток: команды для построения графиков необходимо внедрять в файлы с данными; зато, если файлы в формате plotmtv уже есть, строить графики просто, качество весьма приличное, а основные параметры графика можно поменять и с помощью графического интерфейса;
- Grace — единственная программа из рассмотренных, в которой можно полностью контроллировать построение графиков с помощью графического интерфейса; к сожалению, именно поэтому мне до сих пор не удалось с ней подружиться; возможности у неё весьма приличные, но годится она для визуализации только одномерных данных;
Надо сразу сказать, что у каждой программы есть свои сильные и слабые стороны. Поэтому выбор подходящей программы — это вопрос, который каждый должен решать сам. Выбор зависит от того, какие данные и в каком формате имеются, какие графики хочется получить, насколько высоки оформительские требования, насколько быстро нужно получить графики и в каком количестве их строить. Приведённая ниже сравнительная таблица должна в этом помочь. Для начала советую обратить внимание на примеры (ссылки на галереи с примерами в таблице), они быстро дадут представление о том, на что эти программы способны.
Я лично пользовался и пользуюсь gnuplot, Gri, matplotlib, Tioga и Ctioga — и доволен каждой из них. Если нужно отрисовать что-то быстро (для себя) — обычно gnuplot, Gri или Ctioga мой выбор. Gnuplot также использую, если нужно отрисовать поверхность уровня. Если нужно рисовать изолинии или цветовые карты по двумерным данным, лучше всего с этим справляются Gri и Tioga. Это может делать и matplotlib, но с ней я познакомился сравнительно недавно и использовал пока что только для разных диаграмм.
В сравнение, наверное, можно было бы также добавить программы Kchart и SciGraphica. К сожалению, эти программы я лично не использовал ни разу, и судить о них не могу. Буду рад добавить информацию и по ним, если ей располагает кто-то из читателей.
Сравнительная таблица доступна онлайн на Google Docs, и прямо здесь (правда, придётся использовать прокрутку):
Источник
Основы работы в Gnuplot
Освоить основные принципы работы в Gnuplot легко:
Gnuplot является консольной программой, что позволяет автоматизировать работу в построении сотен графиков. Так же он распространяется под лицензией подразумевающей свободное распространение и использование, т.е. вы можете использовать Гнуплот совершенно бесплатно и это не нарушает никаких прав.
Где скачать Gnuplot?
Скачать можно с официального сайта http://gnuplot.info.
Linux
Windows
Запуск Gnuplot
В консоли запускаем Gnuplot командой
И увидим приветствие программы
Вывод Gnuplot при запуске
Это интерактивный режим работы — когда мы пишем команды и Gnuplot их сразу выполняет.
Построить график функции
И получим такой график
График функции Sin(x) построенный в Gnuplot
Разберем подробнее команду
plot — команда для построения или отрисовки графика, sin(x) — функция для отрисовки, синус. По умолчанию x играет роль переменной.
Так как мы еще не настраивали вид графиков, то по умолчанию ось OX или x у нас в интервале от -10 до 10. Ось OY или y подстраивается автоматически от минимума до максимума, за исключением особых точек на графике, например — бесконечность.
Если есть особые точки на графике как бесконечность
Построить график из файла данных
Что бы построить график из файла данных «data.txt» воспользуемся командой
И получим такой рисунок
График построенный из файла данных в Gnuplot
plot — команда построить график «data.txt» — файл данных, пример файла здесь, подробнее о том какого он должен быть формата и чего там не должно быть будет изложено в другой статье.
И разумеется, Gnuplot не телепат, не знает где лежат ваши файлы, по умолчанию он берет файлы из директории или папки в которой он запущен. Ее вы можете узнать командой
Можно также указать полное имя от корневой директории «/» , например «/home/black/програмирование/Сайт/dev.asifmoda.com/текста/скрипты/data.txt» . Так же не забывайте что имя файла нужно вводить в кавычках, в Ubuntu 16 работают как одинарные, так и двойные кавычки.
u — сокращение от using , то есть использовать. В файле находится две колонки цифр разделенные пробелами, 1 означает для x использовать первую колонку, далее двоеточие, и 2 — использовать вторую колонку для y . Если указано 0, то используется порядок цифр или другими словами номер строки начиная с нуля. Разумеется, можно в качестве x использовать разные колонки цифр. w — сокращение от with , и вместе с l — сокращение от line , линия означает построить график линиями.
Источник