Среди программ таких можно отметить, например, asymptote, популярный gnuplot, metapost и другие. Достойное место в этом ряду занимает PyXPlot (её команды, кстати, во многом совпадают с командами gnuplot, так что изучив одну из этих программ, легко разобраться в другой). Отличительными особенностями программы являются простота и высокое качество результата. Ей и посвящен этот обзор.
Запуск программы
PyXPlot есть в дистрибутиве Ubuntu и Debian, так что установка должна пройти без проблем. В крайнем случае, всегда можно скачать программу с родного сайта.
Сразу нужно отметить, что PyXPlot — программа чисто консольная. Работать с ней можно как интерактивно, вводя команду за командой, так и в скриптовом режиме. В последнем случае команды записываются в отдельный файл, который затем «скармливается» PyXPlot.
Запускается PyXPlot как обычно:
pyxplot СКРИПТЫ
Если вместо списка файлов поставить дефис, то программа будет читать команды со стандартного ввода, что очень удобно при автоматизации. Например, так можно нарисовать синусоиду:
echo 'plot sin(x)' | pyxplot -
Простейшие операции
Главная команда для рисования графиков — plot. Она позволяет не только рисовать графики функции, но и строить «по точкам» графики данных, записанных в файл.
Чтобы построить данные из файла, нужно просто указать его имя в апострофах или двойных кавычках после команды plot. Данные в файле должны быть обычным текстом с одним или несколькими столбцами чисел, разделенных пробелами или запятыми. Если имя заканчивается на «.gz», он будет автоматически распакован перед построением.
plot 'data.gz'Так как в файле указаны отдельные значения, то и отображаются они по отдельности, маркерами.
По умолчанию результаты сохраняются в файл «pyxplot.eps».
Построения графика функции полностью аналогична. Нужно просто записать её после команды plot. В качестве аргумента нужно использовать x.
plot sin(x)/xМожно построить сразу несколько графиков в одной системе координат, просто перечислив функции (или имена файлов) через запятую.
plot sin(x)/x, sin(x)Переменные и функции
В теле файла с командами можно объявить переменные и пользовательские функции при помощи операции «=». Всё достаточно интуитивно:
a = 2В PyXPlot встроены самые распространенные математические функции, такие как: sin, cos, tan, exp, min, log, acos, asin, atan, sqrt, pow и т. д.
b = 3
plot sqrt(a*pow(x,2) + b)
f(x) = sqrt(x)*sin(x)Настройки графика
plot f(x)
При помощи команды set можно задать дополнительные параметры графика, такие как подписи осей (x label и ylabel) и заголовок графика (title). В подписях можно использовать формат формулы в формате TeX (их нужно обязательно заключить в знаки «$»). Использование TeX делает график намного симпатичнее и презентабельнее.
Пример:
set xlabel '$x$'Можно также задать имя выходного файла (set output) и формат выходных данных (set terminal). Поддерживаются распространённые форматы: postscript, pdf, png, jpeg.
set ylabel '$y$'
set title 'Plot of $\sin(x)\over x$'
plot sin(x)/x
Пример:
set terminal pngРабота с файлами данных
set output 'plot.png'
plot cos(x)*exp(x)
Данные в файле можно использовать как независимые координаты при построении. Для этого нужно добавить парметр using к команде plot.
Например, команда
plot 'data.gz' using 1:2строит график, используя первый столбец как координату x точек, а второй — как координату y.
Стили графика
Стиль построения графика настраивается при помощи параметра with.
Команда
plot 'data.gz' with pointsстроит точечный график, а команда
plot 'data.gz' with linesсоединяет точки отрезками.
Можно также откладывать ошибку на графике (with yerrorbars), но для этого потребуется третий столбец.
Тип маркеров и линий также настраивается при помощи модификаторов pointtype и linetype. Подробности — в документации.
plot sin(x) with lines linetype 3Диапазоны по осям
При построении можно указать размеры осей. Для этого нужно указать минимально и максимальное значения по каждой из осей в квадратных скобках через двоеточие. Если нужно указать параметры только для одной оси, то для другой просто записсывается «[:]» без чисел. Пример:
plot [-1:1][-1:1] sin(x)Заключение
Разумеется, возможности программы не исчерпываются только перечисленными командами. Утилита имеет ещё очень много разных возможностей: от аппроксимации данных из файла до построения графиков векторных полей.
Комментариев нет:
Отправить комментарий