Программы для построения графиков можно условно разделить на два вида: те, что используют графический интерфейс — как 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)
Трехмерные графики строятся командой 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)
Команда 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
Большинство команд можно заменить сокращениями. Так 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).
Сохранить график можно, указав формат вывода командой set terminal. Добавим в конце любого из рассмотренных примеров следующее:
set terminal png # формат вывода - PNG
set output "sample.png" # имя файла вывода
replot # перерисуем график в файл
Помощь по командам gnuplot можно получить, набрав help имя_команды. Галерея примеров находится здесь, а прекрасная работа Тосихико Кавано “Not so FAQ”, где есть ответы на все основные вопросы использования программы — по адресу.
Статья впервые опубликована на KV.by. Здесь публикуется в авторской редакции.
Комментарии
comments powered by Disqus