evigmon@tulane.edu
ikh1@yandex.ru
Перевод по возможности буквальный, однако несколько изменен стиль: вместо выражений типа "если Вы хотите сделать..." использованы обезличенные варианты. Некоторые выражения, близкие к идиоматичнеским, переведены другими словами, по возможности, без утраты смысла изложения. В связи с большим различием версий актуализированы названия элементов меню. Все примечания переводчика выделены именно этим шрифтом.
Показания к применению: Для использования этого учебника должен быть установлен пакет Grace. Он присутствует в ALT Linux Master, ALT Linux Compact 3.0 DVD edition, Debian 3.1 Sarge и Debian 4.0 Etch, а также в SUSE Linux 10.0 и 10.1. Возможно, что он есть и в Scientific Linux.
Замечания, пожелания, уточнения и пр. по поводу перевода просьба посылать на указанный выше адрес. По поводу разработки просьба к переводчику не обращаться.
Учебник предназначен для новичков в Grace, однако имееющих некоторое знакомство с оконной системой. Он создан, чтобы показать основные операции в Grace, а также ее некоторые менее очевидные возможности. В пределах описанных здесь действий открывается довольно много полезных возможностей использования Grace.
Назначение этого учебника - дать небольшие примеры, демонстрирующие как делать определенные вещи. Чтобы дать пользователю представление о возможностях программы, будут продемонстрированы как основные, так и более эзотерические особенности Grace. Невозможно продемонстрировать все, что способна делать Grace. Знание приходит только при использовании и экспериментировании. Рекомендуется проделывать все вещи, описанные в этом учебнике, и понимание придет. В конце концов, для помощи можно обращаться к руководству пользователя.
При указании выбираемых элементов в учебнике используется форма типа
То, что требуется набрать (напечатать), будет представлено моноширинным шрифтом, например "наберите y = 3*sin(x)
".
Некоторые примеры требуют ввода данных из файла. В таких случаях это должны быть файлы из каталога учебника (/usr/share/grace/doc или /usr/share/doc/grace) с именами data.N или N.agr (возможно N.agr.gz, где N - номер урока. Например, для выполнения урока 7.1.3 нужно посмотреть файл 7.1.3.agr. Подразумевается, что каждый большой урок начинается с чистого листа.
Некоторые нижеследующие примеры требуют выполнения системных команд. Команды могут отличаться на разных машинах или иметь слегка разный синтаксис. Команды в этом учебнике максимально приближены к стандартам команд UNIX. Этот учебник был подготовлен на машине с Linux, ядро 2.0.32.
Перед тем как сделать Вашу жизнь легче, нужно сделать пару замечаний по поводу GUI.
Можно предположить, что продукт становится лучше от версии к версии, но это не может быть гарантировано. Работа ведется непрерывно. Следовательно, если что-нибудь не так, об этом можно сообщить и это будет исправлено, но имейте ввиду, что все делается в свободное от основной работы время.
Предметом этого урока является выполнение нескольких основных действий в Grace: чтение некоторых данных из файла в график и затем аннотирование графика. В ходе урока будут использованы некоторые основные команды и диалоги Grace.
Начнем формирование ряда данных с диалога Main:Data/Import/ASCII. Выберем файл 2.1.dat (работают как двойной щелчок мышью, так и использование RETURN). В результате на графике появится черная линия.
Далее может понадобиться добавлять какие-то другие ряды данных, и в то же время файлы данных могут иметь несколько отличающийся формат. Просмотрев файл "2.1.dat" (любой программой на выбор), можно увидеть, что в нем несколько столбиков с числами. Один из вариантов интерпретации этого файла таков, что первый столбик - это значения по X, а остальные - значения по Y. Откроем в Grace диалог "Read Sets" (Main:Data/Import/ASCII) снова. На этот раз, из списка "Load as" выберем значение "NXY". Снова выберем файл "2.1.dat". Теперь получим несколько отличющихся по цвету линий.
Теперь мы имеем две копии первого ряда данных, поскольку файл открывался дважды. Хорошо бы убрать неудачную копию. Это наиболее просто делается вызовом списка всех рядов данных. Выбираем Main:Edit/Data_sets... и получаем диалог свойств рядов данных. В нем отображаются все ряды данных и для выбранного ряда он показывает некоторую статистику. Чтобы убарть ряд данных, его нужно выбрать и нажать правую кнопку мыши. Появится меню, в котором можно выбрать"Kill". Нужно отметить, что существует "Kill" (уничтожить) и "Kill data" (уничтожить данные). В первом случае полностью удалейтся все, связанное с рядом данных, в то время как во втором - удаляются данные, но сохраняются все настройки для них так что, если новые данные считываюся в ряд данных, он имеет такие же свойства (цвет и толщина линии и т.д.). Теперь сделаем "Kill" для ряда данных 0 (G0.S0).
Теперь нужно настроить наши ряды данных. Настраиваются практически все свойства линий, включая цвета, толщины и вид линий, символы, заливку и т.д. Эти операции доступны в диалоге "Set appearance", который вызывается выбором Main:Plot/Set appearance... или двойным щелчком по выбранному ряду данных прямо на графике.
В появившемся диалоге снова имеется список рядов данных с их номерами (например, G0.S1 означает ряд данных 1 на графике 0). Для последующих операций может потребоваться знание этого номера. Также, как и в диалоге Main:Edit/Data_sets..., щелчок правой кнопкой мыши в списке рядов данных вызывает меню операций с рядом данных.
Простейший способ раскрасить все ряды данных в разные цвета - в главном меню диалога "Set appearance" выбрать Edit/Set different colors. Проделайте это с имеющимся графиком.
Диалог изменяется, показывая настройки ряда данных, выбранного в списке. Настраиваются практически все параметры. Попробуйте изменить цвет и толщину линий, добавить символы в точки ряда данных, убрать линии между точками данных и закрасить область между осью X и линией. Не зубудьте попробовать настройки во всех вкладках этого диалога, а не только в Main. Чтобы увидеть эффект от изменений, нужно нажать кнопку "Apply". N.B.: Каждый отображаемый объект имеет номер, так что если они перекрываются, объект с наибольшим номером будет сверху. Это относится к графикам и рядам данных на каждом графике.
Параметры координатных осей управляются диалогом настройки вызываемым как Main:Plot/Axis properties или двойным щелчком по рамке графика. Можно изменить все параметры координатной оси, а именно заголовок, шрифт, цвет, наличие/остутсвие линий сетки, определить собственные метки и надписи. Существует много параметров для настройки, и лучший путь - это пробовать и смотреть, что делает каждый параметр.
Начнем с надписей по осям. Предположим, что кривая представляет количество задач, обрабатываемых процессором как функцию количества пользователей. Чтобы было интереснее, предположим, что все проиходит в Квебеке. Это означает, что должен быть график "Nombre de tâches vs. nombre d'usagers". Отметим важность наличия значка над "a" в слове tâches, иначе можно и не пытаться рисовать графики во многих других случаях.... Вызываем диалог настройки осей (Main:Plot/Axis properties), выбираем ось Y, и щелкаем в строке ввода "label string:" для ввода надписи для оси.
Начинаем набирать Nombre de t
. Теперь нужно ввести специальный символ (â). Для этого открываем панель "шрифт" (font tool) нажатием на Control-E
. Символы, которые уже набраны, отображаются в строке "Cstring" этого диалога. Переместим курсор в то место, куда надо ставить специальный символ, и щелкнем по этому символу в наборе символов. Теперь этот символ появился в строке. Можно закончить ввод строки тут же, или нажать "Accept" и вернуться в диалог настройки осей. Теперь можно сделать метку и для оси X. Панель "шрифт" (font tool) доступна всегда, когда нужно вводить текст.
Все атрибуты, относящиеся к надписям по осям, такие как позиция, шрифт, цвет и размер букв, могут быть изменены.
Следующее упражнение - создание заголовков графика. Все действия, требуемые для этого, совершаются в диалоге "Graph appearance", который вызывается выбором Main:Plot/Graph appearance или двойным щелчком над рамкой графика.
Теперь можно написать заголовок графика и, выбрав вкладку "Titles", установить шрифт и цвет заголовка. Область "Viewport" в нижней части вкладки"Main" определяет 4 угла рамки графика (в относительных координатах). Эти позиции можно изменить, редактируя числа вручную, или перемещая черный квадратик в углу рамки графика, предварительно дважды щелкнув по нему.
В этом диалоге настраиваются и другие свойства графика: рамка, цвет фона и наличие легенды. Легенда будет разобрана чуть дальше.
Если на графике имеется несколько кривых, имеет смысл их как-то обозначить, чтобы другие люди могли понять, что означает этот рисунок. Первое, что нужно сделать - установить метку для каждого ряда данных. Это делается вводом строки "Legend" в диалоге "Set appearance". Теперь на вкладке "Main" диалога "Graph appearance" включаем переключатель "Display legend" чтобы увидеть область легенды. Положение и внешний вид этой области настраивается на вкладке "Leg. box". Расположение и пространство между элементами легенды настраивается на вкладке "Legends". Для простоты, назовем ряды данных буквами по алфавиту и затем посмотрим, что получается при различных вариантах настроек.
Указание расположения путем ввода координат может быть мучительным, особенно при точной настройке. Для облегчения задачи также доступен графический метод, хотя он и не очевиден. Когда легенда появляется, она может быть перетащена в другое место. Чтобы это сделать, надо нажать CTRL-L когда мышь расположена в главной рабочей области. Тогда курсор-"стрелка" превращается в "руку с пальцем". Если это не сработает, дважды щелкните по рабочему листу (чтобы переместить фокус ввода) и затем нажмите CTRL-L. Далее можно щелкнуть по области легенды и перетаскивать ее. Чтобы выйти из режима перетаскивания (так же как и из любого другого режима), нужно нажать правую кнопку мыши.
Попробуйте ради упражнения или со скуки создать файл исходных данных и повторить то, что изображено на mygraph.png
Блок данных - это таблица с числами, которая интерпретируется как столбики чисел. То, как из столбиков будут создаваться ряды данных, зависит от информации, которую хочется извлесь из файла.
Для начала нужно прочитать блок данных. Сделаем это, используя диалог Main:Data/Import/ASCII. Выберем файл "3.dat" и в списке вариантов "Load as" выберем "Block data". Если данные считаны успешно, должно появиться окно настройки рядов данных из блока данных. В самом верху этого окна можно увидеть, сколько столбцов данных было считано.
Сначала выбираем тип ряда данных, который нужно получить. Пусть нужно увидеть график с интервалами ошибок.
Затем выбираем, какой столбец содержит значения по координате X. Если такого нет, выбираем "Index", что означает, что по X будет порядковый номер элементов столбцов, начиная с 1.
Значения с Y1 по Y4 используются для выбора вариантов интервалов ошибок (error bars) что может быть нужно для других типов рядов данных.
Последняя вещь, которую надо определить - график, в который нужно загрузить ряд данных, если имеется более чем 1 график.
Наконец, нажимаем "Accept" и создаем ряд данных.
После закрытия этого диалога его можно вызвать снова, используя список рядов данных (напр. Main:Edit/Data_sets) и затем выбрав "Create_new/From_block_data" из меню, появляющегося при нажатии правой кнопки мыши на списке рядов данных.
Попробуем создать новый ряд данных типа XYdY. Это кривая XY с интервалами ошибок (error bars). Выбираем X, Y и Y1 (ошибки) из разных столбцов.
Кроме чтения файлов данных, Grace позволяет использовать (для создания рядов данных) развитый язык сценариев с большим количеством встроенных математических функций. Эти функции включают как базовые сложение, умножение, квадратный корень и т.д., так и библиотеку функций высшей математики типа функций Бесселя и гамма-функции. Поэтому использование функций в Grace ничем не ограничено. Для прояснения деталей можно посмотреть руководство пользователя. Вдобавок, пользователи могут динамически добавлять в Grace библиотеки с любыми желаемыми функциями. Кроме того, данные могут добавляться в ряды данных вручную с помощью текстовых редакторов. Для начала, выберем Main:Edit/Data sets. Для создания ряда данных щелкнем правой кнопкой мыши где-нибудь в области списка рядов данных (который может быть и пустым) и выберем "Create new". Появится меню с 4 различными способами создания новых рядов данных. Далее последовательно рассмотрим эти способы.
Если выбран этот способ, появляется окно "Load and evaluate".
Ниже приведены некоторые примеры:
0
, Stop at: 2*pi
, Length: 100
, Y=sin($t)
($t - в качестве X)0
, Stop at: 2*pi
, Length: 100
,
X=cos($t), Y=sin($t)Если в системе установлена библиотека диалоговых элементов Xbae, при выборе этого варианта будет вызван редактор, похожий на электронную таблицу, который позволяет вводить точки рядов данных вручную. Числа вводятся в ячейки слева направо. Использование "Edit/Add row" возволяет вставить копию текущей строки после нее. Использование "Edit/Delete selected rows" дает возможность удалить выделенные строки (строка выделяется нажатием левой кнопкой мыши на номер строки). Этот метод хорошо подходит для анализа или изменения существующих данных, а атакже для создания небольших рядов данных. Данные добавляются/изменяются при нажатии на ENTER в ячейке или при переходе на другую ячейку.
Если в системе не установлена библиотека диалоговых элементов Xbae, или хочется использовать возможности любимого текстового редактора, редактор также может использоваться для ввода данных. Редактор устанавливается в переменной окружения GRACE_EDITOR. В процессе редактирования другие операции недоступны. Значения ряда данных будут добавлены/изменены после выхода из редактора.
В этом случае новый ряд данных создается из считанного откуда-либо блока данных. См. раздел 3.
Grace поддерживает большое число параметров командной строки, что позволяет пользователям управлять внешним видом и расположением графиков. Это очень полезно, если надо что-то быстро напечатать без вызова GUI. Использование сценариев для автоматического создания графиков или для получения графика с заданными установками может быть гораздо быстрее, чем щелканье по меню в GUI.
Вызов Grace командой "gracebat" из командной строки приведет к запуску Grace, созданию графика и выводу его на принтер (если не указан выходной файл), а затем к завершению работы Grace. В простейшем виде, для получения графика на основе файла a.agr, набираем
gracebat a.agr
Если gracebat в системе недоступен, то же самое делается с использованием параметра "hardcopy" команды "xmgrace". Считая, что выходное устройство - принтер PostScript, набираем
xmgrace -hdevice PostScript -hardcopy a.agr
Часто бывает нужно построить несколько графиков на одном листе, притом что каждый график имеет свои характеристики. Это легко выполняется в командной строке. Параметры, указанные в командной строке, принимаются в порядке следования и сохраняют свое действие, пока не указаны снова.
-pexec "arrange ( 2, 2, .1, .1,.1,ON,ON,ON)"
Точное значение всех параметров объясняется в руководстве пользователя.Рассмотрим пример. Пусть нужно построить 5 графиков, из которых первые 4 расположены вертикально друг под другом, а пятый - встроен внутри четвертого. Фалы данных a.dat, b.dat, c.dat и d.dat, а встроенный график - увеличенная часть d.dat. Предположим, что a.dat содержит несколько столбцов данных, b.dat - блок данных, из которого для построения кривой выбираются столбцы 2 и 4 с ошибками, определяемыми столбцом 3, c.dat должен быть представлен как столбиковая диаграмма, и во встроенном графике надо отобразить область от (0,0) до (1,1). Это может быть реализовано так:
gracebat -pexec "arrange (4,1,.1,.1,.1,ON,ON,ON)" -nxy a.dat -graph 1 -block
b.dat -settype xydy -bxy 2:4:3 -graph 2 -settype bar c.dat -graph 3 -settype
xy d.dat -graph 4 d.dat -world 0 0 1 1 -viewport .15 .3 .8 .88
Отметим, что графики нумеруются с 0 и 0 - значение по умолчанию, так что его не надо указывать для первого графика.
Несомненно, можено попасть в ситуацию, когда хочется сделать что-либо, для чего не существует параметров (опций) в командной строке Grace (как это было сделано с командой "arrange"). В таком случае необходим язык файла параметров Grace. Параметр "-pexec" обрабатывает следующие аргументы, как будто они читаются из файла параметров или выполняются в командной строке. Если нужно сдулать что-то болле сложное, чем одна команда, можно использовать несколько вызовов "-pexec" или поместить команды в файл и запускать этот файл с параметром "-batch".
Простейший способ прочитать данные из файлов foo.dat и bar.dat и умножить значения по Y файла foo.dat на 1000
xmgrace foo.dat bar.dat -pexec "s0.y = s0.y * 1000"
Чтобы сделать то же, что и в предыдущем примере, и вдобавок проименовать оси и изменить цвета линий, создаем файл с командами Grace с именем "bfile"
#Обязательный комментарий s0.y = s0.y * 1000 s0 line color 3 s1 line color 4 title "A Gnasty Graph" xaxis label "Time ( s )" yaxis label "Gnats ( 1000's )" autoscale
и затем вызываем xmgrace с параметрами
xmgrace foo.dat bar.dat -batch bfile
В этом разделе разбираются некоторые возможности Grace по подгонке кривых. В Grace можно проволить два вида подгонки. Первый вид - регрессия или линейная подгонка, когдда оптимизация выполняется на основе линейного уравнения или уравнения, которое может быть сведено к линейному. Это работает для полиномов и схожих типов уравнений. Другой вид подгонки - нелинейная, в которой требуется указать желаемую функцию.
Построим кривую и посмотрим, как работает каждый вид подгонки. Для начала, построим кривую по функции y = sqrt(x) + exp(x)/3 -1
в диапазоне от 0 до 3 из 100 точек.
Открываем диалог регрессии, выбрав Main:Data/Transformations/Regression.
Вызовем диалог Main:Data/Transformations/Non-linear curve fitting. Предыдущие рады данных, кроме оригинальной функции, следует уничтожить.
y = a0*sqrt(x) + a1*exp(x) + a2
.Можно вращать ряды данных вокруг указанной оси перпендикулярно плоскости графика (по оси Z). Это делается через Main:Data/Transformations/Geometric transforms....
С рядами данных можно выполнять математические операции. Однако во многих таких операциях требуется, чтобы оба ряда данных имели одинаковые абсциссы, то есть их значения по оси X должны совпадать. Это нужно, поскольку большинство операций выполняется поточечно (point by point). Например, перемножение двух рядов данных означает перемножение значений Y с получением новых значений Y. Этого не требуется только при фильтрации (Data filtering) и свертке (Linear convolution). К счастью, в Grace имеется возможность решения проблемы отличающихся абсцисс. Она называется "Интерполяция" и позволяет интерполировать значения одного рряда данных в области существования другого, создавая новую кривую.
Добавим косинус одного ряда данных к синусу другого ряда данных и создадим новую кривую. Этот пример выполним на рядах данных, имеющих разные диапазоны и разные точки выборки:
s4 length s2.length
s4.x = s2.x
s4.y = cos(s3.y) + sin(s2.y)
. S4 on
. При использовании GUI, нужно вызвать список рядов данных (например, Main:Edit/Data_sets или Main:Plot/Set_appearance), выбрать ряд S4 и сделать его видимым, выбрав "Show" из меню операций (правая кнопка мыши). N.B. Если абсциссы исходных кривых совпадают, начинать надо с шага 5. Если выборки имеют одинаковое количество точек, можно пропустить шаг 4.
Выделение признаков (feature extraction) - это способ создания одной кривой из семейства кривых. При этом создается одна тоска данных на каждую кривую по результатам измерения параметроы кривой. Пусть, например, имеется семейство кривых, отображающих численность комаров как функцию времени. каждая кривая строится при некоторых условиях, например, с учетом численности антилоп в степи. При использовании выделения признаков (feature extraction), можно использовать это семейство кривых для создания новых зависимостей, таких как максимальная численность комаров в зависимости от количества антилоп или длительность максимальной численности комаров в зависимости от численности антилоп. Такой прием часто используется, когда надо анализировать более чем один график.
Часто нужно исследовать только часть ряда данных или выполнить преобразования тоже только с частью ряда. Операция сужения областей позволяет определить область графика, в которой выполняются операции.
Существует несколько способов определения областей. Область может быть задана прямой линией (правее, левее, выше, ниже), многоугольником (внутри или снаружи), а также диапазонами значений (внутри или вне диапазона значений по X или по Y). Диалог определения области вызвается как Main:Edit/Regions/Define. Выбираем одну из областей (по номеру), которую надо определить, указываем тип области (Region type) и нажимаем кнопку "Define".
Задаем концы линии щелчком левой кнопки мыши.
Если выбран многоугольник, после нажатия на "Define" указываеми вершины многоугольника щелчками левой кнопкой мыши и завершаем определение правой кнопкой мыши.
Выбираем две точки, задающие диапазон.
Области могут быть использованы только для ограничений при вычислении выражений. Вызовем диалог "evaluateExpression" (Main:Data/Transformations/Evaluate_expression). Укажем ряды данных для источника (source) и результатов (destination) и запишем формулу, которую нужно применить к интересующей нас области. Если формула не указана, это равносильно идентичности источника и результатов. Далее в списке "Restriction:" выберем область, в которой будет производиться преобразование. Если включен режим "Negated", то будет использовано дополнение к выбранной области (в смысле дополнения множеств).
После нажатия на "Apply" операция будет выполнена. Результирующий ряд данных будет создан на основе формулы, вычисленной только в точках, содержащихся в выбранной области. Таким образом, если никакой формулы на указано, в результате получится ряд данных, состоящий из точек, содержащихся в выбранной области. Соответственно, чтобы удалить все точки из области, оставляем поле для формулы пустым и включаем режим "Negate".
Каналы - это способ получения выходных данных выполняющегося процесса без промежуточной стадии формирования файла данных. Вместо этого, работающая программа посылает данные на на один конец канала, а Grace читает их с другого канца канала.
В некоторых диалогах, например, Main:Data/Import/ASCII, может быть указан режим чтения данных из файла или из канала. Если выбран канал, будет запущена программа, указанная в строке "Selection" и ее стандартный вывод будет перенаправлен, как будто данные читаются из файла.
Именованный канал - это особый случай канала, описанного выше. В предыдущем случае после прекращения работы программы и заверешения чтения ее вывода канал уничтожается. Именованный канал - это статическая структура, которая позволяет многим процессам писать в него или читать из него. Назначение именованных каналов в Grace - запуск окна Grace и управление Grace путем посылки команд и данных через именованный канал. Это очень мощная технология и она позволяет сделать практически все, что можно сделать непосредственно в режиме GUI. Чтобы попробовать эту возможность, можно сделать следующее:
mkfifo pvc
. Если посмотреть список файлов в каталоге, можно увидеть, что появился файл pvc.xmgrace
-npipe
pvc
&. Теперь Grace следит за любыми данными, которые посылаются в канал. Все происходит так, как будто данные посылаются через интерпретатор команд. echo "read \"8.2.dat\"" > pvc
. (Символы "backslash" нужны для экранирования кавычек, так что Grace получит команду :read "8.2.dat".) Таким образом, Grace получает указание считывать данные из файла. Если мы захотим использовать автомасштабирование, ничего не выйдет, поскольку точки формируются именованным каналом. В таком случае набираем echo autoscale > pvc
, после чего набираем echo redraw > pvc
. Теперь график будет автоматически масштабирован и перерисован.
Завершаем работу Grace командой echo exit > pvc
. Также нужно не забыть удалить pvc.Если на листе представлено несколько графиков, конкретный график выбирается щелчком мышью внутри рамки графика. Если рамки графиков перекрываются, щелчок будет циклически переключать выбор.
Работа с областями перекрывающихся графиков может вызывать затруднения. В таких случаях невозможно использовать двойной щелчок, поскольку каждый щелчок будет интерпретироваться как одиночный и приводить к изменению выбора графика. В таких ситуациях нужно отключать выбор графика по щелчку мыши. В диалоге Main:Edit/Preferences в списке Graph focus switch: нужно выбрать значение "As set". Это означает, что график для выбора можно указать однозначно. В списке графиков (например, Main:Edit/Overlay_graphs), выбираем график, с которым надо работать, и из меню, вызываемого правой кнопкой мыши, выбираем "Focus to".
Распределить большое число графиков с одинаковыми интервалами между ними можно с помощью диалога Main:Edit/Arrange_graphs. При этом все размеры и интервалы будут вычислены автоматически:
Нужно отметить, что все вышеописанное касается только выбранных графиков. Так что, если нужно переразместить существующие графики, они должны быть выбраны, иначе будут созданы новые.
Размещение отдельных графиков может выполняться или (1) точно, указанием координат углов рамки (viewport coordinates) из диалога Main:Plot/Graph_appearance или с использованием ранее описанного диалога "Arrange graphs", или (2) приблизительно, двойным щелчком по маркерам выбранного (активного) графика и затем перетаскиванием этих маркеров.
Наложение одного графика на другой используется для графиков с двумя различающимисями осями X и/или Y. Пусть, например, один из графиков использует в качестве X номера месяцев года. На нем может быть две зависимости, одна из которых использует левую ось Y и показывает количество проданных антилоп, а другая использует правую ось Y и показывает количество комаров по логарифмической шкале. Аналогично, при отображении спектральных зависимостей, можно иметь одну ось X, в Hz и другую - в длинах волн. Рассмотрим гипотетический пример с антилопами.
Связи - это способ обновления рядов данных без их удаления и перечитывания данных. Диалог настройки связей вызывается как Main:Data/Hot links.
Простейший случай связи - с файлом, содержащим только один ряд данных. Чтобы создать связь с одним рядом данных, сперва нужно указать ряд данных, который должен обновляться, а затем указать файл. Можно также установить связь с каналом, и в этом случае надо указать канал. Также можно указать команду, которая должна выполняться каждый раз при обновлении ряда данных. В общем случае это должна быть команда "autoscale", чтобы при каждом обновлении получался правильный размер. Можно также выполнять более чем одну команду. Возможно, например, иметь ряд данных, который является функцией двух рядов данных, и все должно пересчитываться, когда изменяются исходные данные. В таком случае команды записываются в файл и затем используется команда "READ BATCH".
Нажатие на кнопку "Link" создаст связь, и по нажатию кнопки "Update" ряд данных будет обновляться при обновлении исходного файла данных и будет также выполняться содержимое командного окна ("Window/Commands").
В качестве примера считаем файл 10.1.dat и создадим с ним связь (предварительно надо скопировать файлы 10.1.dat, 10a.dat, 10b.dat, 10c.dat и shiftdata.sh в домашний каталог). Теперь в командной строке запустим sh shiftdata.sh
и обновим связь кнопкой "Update". Можно увидеть, что пик графика сдвинулся. Можно повторять эти два действия сколько угодно раз.
Иногда файл данных может содержать несколько столбцов данных и нужно иметь возможность создать связь со всеми или только с некоторыми столбцами. Чтобы объяснить это программе, выбираем режим нескольких рядов данных (видимо, NXY) со столбцами XY в файле. Подразумевается формат "x y1 y2". Теперь устанавливаем связь с файлом данных. В списке связей можно имя файла будет дополнено доветочием и номером. Этот номер указывает на столбец файла данных, с которым установлена связь. Ненужные столбики можно выделить и сделать им "Unlink". При нажатии на "Update" все ряда данных на графике будут обновляться.
Вместо использования постоянно открытого окна "Hot links", действия по одновлению можно делать комбинацией "ALT-u". Если оказалось, что "ALT-u" не действует, попробуйте дважды щелкнуть внутри графика, который нужно обновить и закройте появившееся окно. Такая процедура "сообщит" программе, что нужно обработать последующую комбинацию клавиш.