Содержание


Построение научных и инженерных графиков с помощью GnuPlot

Часть 1. Введение в GnuPlot. Формат ввода и вывода данных

Comments

Серия контента:

Этот контент является частью # из серии # статей: Построение научных и инженерных графиков с помощью GnuPlot

Следите за выходом новых статей этой серии.

Этот контент является частью серии:Построение научных и инженерных графиков с помощью GnuPlot

Следите за выходом новых статей этой серии.

GnuPlot – это терминальная программа, которая запускается из командной строки (существуют также графические интерфейсы gui). Управление работой программы осуществляется с помощью специальных команд, вводимых либо с клавиатуры, либо из специального текстового файла. Программа может строить 2-х и 3-х мерные графики, графики в полярных координатах, специальные статистические графики с показанным отклонением, столбчатые диаграммы и многое другое. Слабое место – это построение круговых диаграмм. Их построение требует написания довольно сложных команд.

GnuPlot свободно распространяемая бесплатная программа распространяется под собственной оригинальной лицензией, авторы - Томас Виллиямс и Коллин Келли (Thomas Williams, Colin Kelley), на сайте можно ознакомится с возможностями программы, посмотреть примеры применения (сотни) и прочитать документацию (на английском языке).

Важно: у программы очень много конфигураций, настраивается несколько десятков параметров, описанных в документации и литературе, но нужно понимать, что все они уже предварительно определены в специальном конфигурационном файле, либо определяются автоматически в процессе выполнения. Во время сеанса работы пользователь переопределяет лишь некоторые параметры, чтобы добиться необходимых результатов.

GnuPlot может не только строить графики по уже имеющимся данным, у него есть встроенный язык программирования, схожий с «С», в котором предусмотрены множество математических функций, ветвления и циклы. За счет этого возможно предварительно обрабатывать данные, а также строить графики функции, задаваемых математическими формулами. В качестве примера рассмотрена функция sin(2*х+10).

Для установки программы в ОС Ubuntu необходимо ввести в терминале следующую команду:

sudo apt-get install gnuplot

После ввода пароля программа будет установлена. Gnuplot может работать в двух вариантах:

  1. Ввод команд в диалоговом режиме. Для входа в данный режим необходимо вызвать программу командой:
    gnuplot

    Программа выведет на экран краткую информацию и приглашение командной строки. Для выхода из диалогового режима в командную оболочку необходимо ввести exit:

    gnuplot> exit
  2. Запуск программы с заранее подготовленным командным файлом. Для этого после имени программы в кавычках указывается имя файла, в котором содержатся команды gnuplot. Файл должен иметь текстовый формат.
    gnuplot "scen.plt"

    В данном случае – это файл scen.plt. Имя файла может быть любым, но в данной статье такие файлы будут иметь расширения plt, чтобы можно было определить, что в файле не данные, а команды.

Получение данных для построения графиков

Для построения графика необходимо предоставить данные в определенном порядке. Gnuplot загружает данные из обычного текстового файла, при этом интерпретируя часть встречающихся в нем символов как управляющие. Файл данных представляет собой матрицу, содержащую столбцы и строки. Каждый столбец – это отдельный поток данных: значение некоторой функции или результат измерения. Для примера был сформирован файл 1.txt, который приведен в листинге 1.

Листинг 1. Содержисое файла 1.txt
# СА №1 
name ВУЗД90 ВУЗД60 ВУЗД60+КУ 
400	122	113	101 
500	122	112	101.5 
630	123.5	113.5	103 
800	127.5	120.5	108 
1000	130.5	123	111.5 
1250	127	118.5	107 
1600	126.5	116.5	105 
2000	124	119.5	109.5 
2500	119	114	103.5 
3150	121	114.5	107 
4000	113	104.5	95

Стоит отметить, что во всех файлах с данными и командами gnuplot игнорирует строки начинающиеся с символа #. Это специальный символ, который используется для комментариев. После него можно написать все, что угодно, программа пропускает стоку целиком. Использование комментариев очень полезно, так как со временем легко забывается содержимое файла.

В файле могут встречаться управляющие слова, в данном случае – name. Это крайне важное слово, идущие после него слова gnuplot воспринимает как названия столбцов данных, это отличный способ дать осмысленные названия на этапе заполнения файла.

Необходимо понимать, что разделение данных (числовых и строковых) в gnuplot выполняется двумя путями: символом пробел, либо табуляцией. Табуляция удобнее, так как данные образуют красивые ряды. Если надо чтобы внутри данных были пробелы, используются кавычки, например "ВУЗД 90".

В первом столбце содержится значение частоты в Гц, в остальных – показания приборов (они регистрируют звуковое давление в дБ). Причем, так как файл данных – это простой текстовый файл, многие современные приборы способны сохранять результаты измерений в подобных файлах, это очень удобно.

Итог: создали файл 1.txt, в котором первый столбец – это частота, остальные – результаты измерений. При этом применяли символ # для ввода комментариев и управляющее слово name для ввода имен данных. Важными являются только сами данные, остальное может отсутствовать.

Выбор терминала для вывода данных и настройка используемых шрифтов.

В директории с файлом данных необходимо создать текстовый файл scen.plt, содержащий команду:

plot '1.txt'using 1:2

и выполнить

gnuplot "scen.plt"

Таким образом был запущен gnuplot с командой, записанной в файле.

Gnuplot – очень универсальная программа и может строить графики в различных форматах, в нашем случае – это терминал. По умолчанию используется терминал X11, то есть программа построила график, вывела его на экран и завершилась (вместе с ней пропал и график). Есть больше десятка других терминалов, наиболее интересные:

  • png – хорошо известный растровый формат, отлично подходит для графиков;
  • svg векторный для построения масштабируемых графиков;
  • postscript для вывода на принтер;
  • epslatex для документов LaTeX.

Пример установки терминала png с указанием файла для сохранения графика приведен в листинге 2.

Листинг 2. Установка тесминала png
set terminal  png 
set output 'ЧХ №1.png' 
plot '1.txt'using 1:2

В результате получается следующий график, показанный на рисунке 1.

Рисунок 1. График, полученный в результате установки терминала
Рисунок 1. График, полученный в результате установки терминала
Рисунок 1. График, полученный в результате установки терминала

На рисунке 1 все (кроме данных) создано автоматически: нарисованы оси, нанесены деления, точки данных помечены красными крестиками, но не соединены линиями. Надпись вверху – это легенда, тоже добавленная автоматически. Команда

plot '1.txt'using 1:2

означает, что надо построить график, используя (using) для оси X данные из столбца 1, для оси Y – из столбца 2.

В случае необходимости для терминала png можно установить прозрачность:

set terminal png transparent

По умолчанию gnuplot строит графики размером 640х480 пикселей, размер графика, тип и высоту шрифта, которым наносятся надписи, можно менять.

Новый файл scen.plt приведен в листинге 3.

Листинг 3. Содержимое файла scen.plt
set terminal  png size 500,350 font 'Verdana, 10' 
set output 'ЧХ №1.png' 
plot '1.txt'using 1:2

На рисунке 2 приведен график, построенный по данным из файла scen.plt.

Рисунок 2. График, построенный по данным из файла scen.plt
Рисунок 2. График, построенный по данным из файла scen.plt
Рисунок 2. График, построенный по данным из файла scen.plt

Полученный график имеет размер 500х350 пикселей и шрифт Verdana высотой 10.

Если предполагается использовать надписи на русском (или другом языке) надо убедиться, что выбранный шрифт содержит начертания для этого языка, иначе вместо надписей будут непонятные значки.

Имя выходного файла задается командой set output. Определить файл и терминал можно в любом месте, но обязательно перед plot.

Есть возможность выводить подстрочные и надстрочные знаки с помощью контрольных символов, приведенных в таблице 1:

Таблица 1. Контрольные символы для вывода построчных и надстрочных знаков
Контрольный символПримерРезультат
^a^b
_a_b
@a@^b_{cd}

Заключение

В данной статье рассмотрены способ выбора терминала для вывода графиков, определение размера графика, типа и высоты шрифта, которым будут нанесены надписи.


Ресурсы для скачивания


Похожие темы


Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux, Open source
ArticleID=855033
ArticleTitle=Построение научных и инженерных графиков с помощью GnuPlot: Часть 1. Введение в GnuPlot. Формат ввода и вывода данных
publish-date=01152013