Программы для построения графиков можно условно разделить на два вида: те, что используют графический интерфейс — как Origin или SciDAVis, и те, что строят графики при помощи команд. К числу последних относится и gnuplot, с которым мы хотим познакомить читателя. Вот уже почти тридцать лет gnuplot строит графики. И только. Но это он умеет делать хорошо.
Мы решили разделить статью на две части: первая — для тех, кто спешит и хочет лишь познакомиться с программой, и вторая — для тех, кто захочет продолжить знакомство. Для описания всех возможностей gnuplot понадобилась бы целая книга (и такие книги существуют, например, эта), поэтому мы попытаемся на нескольких примерах дать представление о том, как работает gnuplot и для чего его можно использовать.
Предположим, что gnuplot уже скачан, установлен и запущен. Все команды набираются в командной строке gnuplot.
Графики двумерных функций строятся командой plot (рис. 1), например:
plot sin(x)
Укажем диапазон изменения x:
plot [x=-2*pi:2*pi] sin(x)
Чтобы построить графики нескольких функций, их надо разделить запятыми (рис. 2)
plot [x=-2*pi:2*pi] sin(x),cos(x)
Рисунок 1
Рисунок 2
Трехмерные графики строятся командой splot
(рис. 3)
:
set contour # строить линии уровня
set hidden3d # удалять невидимые линии
set isosamples 100 # установить частоту дискретизации 100 по x и по y
splot [-pi:pi] [-pi:pi] sin(x*x+y*y)/(x*x+y*y)
Рисунок 3
Команда set
устанавливает значение параметров графика. После символа # идет комментарий. Частота дискретизации отвечает за гладкость построения графика — чем она выше, тем более гладким выглядит график. Текущее значение частоты можно узнать командой show:
show isosamples
Текст примера можно сохранить в файле sample.gp и затем запустить на выполнение командой:
load ’sample.gp’ # или load ”sample.gp”
Расширение файла не имеет значения.
Если нужен график в виде окрашенной поверхности, в конце строки splot добавим with pm3d:
splot [-pi:pi] [-pi:pi] sin(x*x+y*y)/(x*x+y*y) with pm3d
Переписывать команду полностью не нужно. Достаточно найти ее с помощью стрелочек «вверх»/«вниз» в истории команд, добавить необходимое и перерисовать (рис. 4):
replot
Рисунок 4
Большинство команд можно заменить сокращениями. Так plot сокращается до p, splot — до sp, а with — w.
Графики по файлам данных также стоятся с помощью plot и splot. Допустим, есть такой файл:
# data.txt
# x y
0 0
0.351506 0.339385
0.703012 0.654529
1.05452 0.94543
1.40602 1.21209
Построим по этим данным кривую (рис. 5):
plot "data.txt" with lines # или: p "data.txt" w l
По умолчанию gnuplot строит только точки и with lines нужен, чтобы соединить точки линией.
Наборы данных в одном файле разделяются пустой строкой. Например, сделав пустую строку после
0.703012 0.654529
получим по графику для каждого из наборов (рис. 6).
Рисунок 5
Рисунок 6
Сохранить график можно, указав формат вывода командой set terminal. Добавим в конце любого из рассмотренных примеров следующее:
set terminal png # формат вывода - PNG
set output "sample.png" # имя файла вывода
replot # перерисуем график в файл
Помощь по командам gnuplot можно получить, набрав help имя_команды. Галерея примеров находится здесь, а прекрасная работа Тосихико Кавано “Not so FAQ”, где есть ответы на все основные вопросы использования программы — по адресу.
(Продолжение следует)
Дмитрий Храмов
Комментарии
Продолжение здесь.
Почитал продолжение. Отличный и полезный материал!
Спасибо! Это были две половинки одной статьи, и без второй части первая выглядела совсем простенько. А так получился миниучебник.