Gnuplot — это кроссплатформенная
«unix-way» утилита для рисования графиков. Да, конечно, вы можете сделать графики в любимом теплом, уютном MS Excel или Open Office Calc, но что, если понадобится нарисовать нечто посерьезнее, быстро и не руками? Например, такое:
- Gnuplot or not: когда это нужно?
-
- Когда вы хотите автоматизировать процесс построения графиков,
а не заниматься ручным набиванием чисел в таблицу Excel. Да, я сравниваю гнуплот с экселем. А где обычно строят графики?
Любой график можно построить одной командой. Это запредельно быстро по сравнению с Excel.
- Если приходится (предстоит в ближайшем будущем) строить графики много и часто.
- Когда вашей программе нужно простое средство визуализации.
- Когда встроенных в Excel возможностей не хватает. Там можно строить в полярных координатах? А в сферических? А делать анимацию?
- Когда нужна картинка в векторном формате (.svg, .eps).
- Если вы верстаете в LaTeX и заинтересованы в качественных, векторных графиках.
- Когда вы хотите автоматизировать процесс построения графиков,
а не заниматься ручным набиванием чисел в таблицу Excel. Да, я сравниваю гнуплот с экселем. А где обычно строят графики?
- Это не нужно, если
-
- Имеющиеся инструменты вас вполне устраивают. Вы — мастер матлаба или маткада, где рисоватор графиков является частью системы.
- Графики приходится строить редко.
- Вы не дружите с программированием, командной строкой, скриптами и даже не хотите знать, что это такое. А тогда что же вы делаете в моем блоге?
Гнуплот прекрасен! Можно даже заявить, что я постиг все прелести CLI именно во время освоения этой утилиты. Рекомендую бегло ознакомиться с ее возможностями на официальном сайте.
Гнуплот поддерживает тонну форматов файлов, как векторных, так и растровых. Разумеется, можно выводить результат сразу на экран.
Самое ценное его качество — интерфейс командной строки, позволяющий нам строить графики
не выходя из дома из других программ, используя каналы (pipelines). Поэтому гнуплот окажется очень кстати, если вы пишете маленькую демонстрационную программку (какие-нибудь численные методы), графический интерфейс которой занимал бы добрую половину кода.
Различия между Linux и Windows версиями
Их почти нет. Аналог линуксового терминала x11 называется win — вот, по сути, и все отличия. Однако, есть слабо заметные нюансы, из-за которых гнуплот в линуксе мне больше нравится. Например, анимация выглядит плавнее.
Начинаем строить
Команды можно вводить сразу в интерпретатор:
А можно сохранить их в файл, чтобы автоматизировать процесс. Продемонстрирую на примере. Создадим файл с именем sin_cos.plt, куда запишем магические заклинания:
Только что я создал скрипт. Теперь откроем его в гнуплоте (это делается немного по-разному на Windows и Linux).
И вот результат:
Рекомендуемые расширения для скриптов: .plt, .gnu, .gpi, .gih. В текстовом редакторе Vim есть подсветка скриптов гнуплота, но она автоматически включается только для .gpi. Для неискушенных пользователей сойдет режим подсветки языка bash. Разумеется, без подсветки все тоже будет работать.
С чего начать?
- Успокоиться и взять себя в руки.
- Самое сложное поначалу — не пытаться работать с этим как с MS Excel. У вас не получится построить график, просто потыкав мышкой.
- Рекомендую пройтись по всем разделам примеров, чтобы взять какой-нибудь за основу. К сожалению, там описаны не все фишки.
- В конце статьи я привел несколько хороших, проверенных ссылок. Когда сам что-то забываю, они меня выручают.
- Сперва нужно четко понять, что вы хотите изменить (хочу легенду слева, линии другим цветом, подписи к осям), затем найти команду, отвечающую за эти действия. Поменять можно почти всё. Я до сих пор нахожу что-то новое.
- Если ничего не помогает, тогда читать документацию. К сожалению, в официальном FAQ нет ни одной картинки. Поиск выручает.
О терминалах
Терминал в данном случае — это то место, где вы увидите график. Приведу наиболее часто используемые:
- Оконные: x11 (или win, если Windows), wxt.
- Векторные: svg, epscairo, dxf, latex, epslatex.
- Растровые: pngcairo, gif, jpeg.
Еще один короткий пример
set terminal wxt — делаем вывод картинки на экран. Отрисовкой окна занимается wxWidgets, отрисовкой содержимого — библиотеки cairo и pango;
plot — построить двухмерный график; '-' — координаты будут переданы ниже в этом файле; u 1:2 — используя первый и второй столбец (u — это алиас для using, можно писать и так, и так); w linespoints — в виде линий с точками (w — это алиас для with); lw 2 — толщина линии (linewidth) 2 пикселя; lt 3 — тип линии (linetype). В данном случае задает цвет. Явно задать цвет можно с помощью lc (linecolor); ps 2 — размер точки (poinsize); pt 4 — точка в виде квадратика (pointtype); title 'линия' — подпись в легенде.
Дальше идут координаты в виде "x y". Пустая строка посередине сделает разрыв в линии. e указывает на конец потока чисел. Можно написать end, это одно и то же.
Получается вот так:
Ссылки
Гнуплот распространен не так широко, как MS Excel, поэтому инструкций для чайников в интернете мало, и в основном на английском.
- Gnuplot tips (not so FAQ) — неплохое руководство, переведенное на русский. К сожалению, несколько устарело.
- Много записей по теме есть в записках дебианщика.
- Gnuplotting.org — красивые и сложные примеры.
- блог gnuplot-tricks — неочевидные приемы и эффекты.
- Поскольку на блогспоте сидит много линуксоидов, логично поискать именно там.
Комментариев нет:
Отправить комментарий