Date Редакция Категория sci Теги gnuplot / графика

gnuplot

Программы для построения графиков можно условно разделить на два вида: те, что используют графический интерфейс — как Origin или SciDAVis, и те, что строят графики при помощи команд. К числу последних относится и gnuplot, с которым мы хотим познакомить читателя. Вот уже почти тридцать лет gnuplot строит графики. И только. Но это он умеет делать хорошо.

Мы решили разделить статью на две части: первая — для тех, кто спешит и хочет лишь познакомиться с программой, и вторая — для тех, кто захочет продолжить знакомство. Для описания всех возможностей gnuplot понадобилась бы целая книга (и такие книги существуют, например, эта), поэтому мы попытаемся на нескольких примерах дать представление о том, как работает gnuplot и для чего его можно использовать.

Предположим, что gnuplot уже скачан, установлен и запущен. Все команды набираются в командной строке gnuplot.

Графики двумерных функций строятся командой plot (рис. 1), например:

plot sin(x)

Рис. 1

Укажем диапазон изменения x:

plot [x=-2*pi:2*pi] sin(x)

Чтобы построить графики нескольких функций, их надо разделить запятыми (рис. 2)

plot [x=-2*pi:2*pi] sin(x),cos(x)

Рис. 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, а withw.

Графики по файлам данных также строятся с помощью 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

Рис. 5

По умолчанию gnuplot строит только точки и with lines нужен, чтобы соединить точки линией.

Наборы данных в одном файле разделяются пустой строкой. Например, сделав пустую строку после

0.703012  0.654529

получим по графику для каждого из наборов (рис. 6).

Рис. 6

Сохранить график можно, указав формат вывода командой set terminal. Добавим в конце любого из рассмотренных примеров следующее:

set terminal png           # формат вывода - PNG
set output "sample.png"    # имя файла вывода
replot                     # перерисуем график в файл

Помощь по командам gnuplot можно получить, набрав help имя_команды. Галерея примеров находится здесь, а прекрасная работа Тосихико Кавано “Not so FAQ”, где есть ответы на все основные вопросы использования программы — по адресу.

Исходный код примеров.

Продолжение следует

Статья впервые опубликована на KV.by. Здесь публикуется в авторской редакции.



Комментарии

comments powered by Disqus