понедельник, 15 февраля 2010 г.

Базовые принципы работы в gnuplot

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

Для начала введите в терминале gnuplot. Программа показывает информацию о себе, после этого появляется приглашение командной строки "gnuplot> ". Теперь можно вводить команды для построения графиков.


user@user-laptop:~$ gnuplot


G N U P L O T
Version 4.2 patchlevel 5 
last modified Mar 2009
System: Linux 2.6.31-17-generic


Copyright (C) 1986 - 1993, 1998, 2004, 2007 - 2009
Thomas Williams, Colin Kelley and many others


Type `help` to access the on-line reference manual.
The gnuplot FAQ is available from http://www.gnuplot.info/faq/


Send bug reports and suggestions to <http://sourceforge.net/projects/gnuplot>




Terminal type set to 'wxt'
gnuplot> 



Команды для выхода, чтения из файла и сохранения параметров сессии в файл


Для выхода из программы используются команды exit или quit. Если вы выйдете из gnuplot с помощью команды quit, все настройки текущей сессии будут потеряны. Для сохранения настроек используется команда save с указанием имени файла, в котором будут сохранены настройки и функции, которые были определены. Имя файла указывается в одинарных или двойных кавычках. Имя файла указывается произвольное, но если такой файл уже существует в текущей директории, gnuplot перезапишет внутренние параметры без запроса подтверждения.


gnuplot> save "savefile.plt"
Сохраненный файл является обычным текстовым файлом. Вы можете редактировать его содержимое с помощью любого текстового редактора. Чтобы снова начертить график из сохраненного файла, используйте команду load "savefile.plt", или запустите gnuplot с именем файла в качестве параметра командной строки.
Из gnuplot:

gnuplot> load "savefile.plt"

Из командной оболочки системы:


% gnuplot savefile.plt


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

Команды для построения графиков

В gnuplot имеются две базовые команды для построения графиков - plot и splot. Первая используется для построения двумерных графиков, вторая - для трехмерных. Gnuplot строит график на основе функции или числовых данных, сохраненных в файле. Для построения графика функции используйте команду plot/splot с интервалом для оси X (или осей X и Y для трехмерного графика) и функцией. Вы можете не задавать интервалы для осей. Ниже приведен пример построения графика функции y=sin(x), который можно увидеть во многих руководствах по gnuplot.

gnuplot> plot sin(x)




В данном случае построен двумерный график. Фрейм нарисован толстой линией, которая называется "граница (border)".  Деления шкалы осей X и Y называются "главные деления (major tics)", числовые подписи расположены под делениями шкалы. Интервалы между главными делениями могут быть разделены дополнительными делениями. Вы можете задать имена осей X и Y. Название оси X -- "xlabel" -- отображается ниже оси, в то время как расположение "ylabel" зависит от вашего терминала. Если терминал поддерживает поворот текста, то название оси будет отображаться слева от оси и будет повернуто на 90 градусов, в противном случае оно будет отображаться над осью. Если интервалы для осей не заданы, gnuplot определяет соответствующие значения автоматически. В приведенном выше примере интервал для оси Х от -10 до +10 взят по умолчанию, а интервал для оси Y выбран автоматически. Зададим интервал по оси X от 0 до +5, [0:5].

gnuplot> plot [0:5] sin(x)




Команды для изменения переменных и параметров

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


gnuplot> help set
 The `set` command can be used to set _lots_ of options.  No screen is
 drawn, however, until a `plot`, `splot`, or `replot` command is given.


 The `show` command shows their settings;  `show all` shows all the
 settings.


 Options changed using `set` can be returned to the default state by giving the
 corresponding `unset` command.  See also the `reset` command, which returns
 all settable parameters to default values.


 If a variable contains time/date data, `show` will display it according to
 the format currently defined by `set timefmt`, even if that was not in effect
 when the variable was initially defined.


Subtopics available for set:
    angles            arrow             autoscale         bars
    bmargin           border            boxwidth          cbdata
    cbdtics           cblabel           cbmtics           cbrange
    cbtics            clabel            clip              cntrparam
    colorbox          contour           datafile          date_specifiers
    decimalsign       dgrid3d           dummy             encoding
    fit               fontpath          format            grid
    hidden3d          historysize       isosamples        key
Press return for more: 


Ниже приведены несколько примеров изменения параметров графика. Сначала вставляются подписи осей. Текст должен быть заключен в одинарные или двойные кавычки. Далее задаются интервалы для осей X и Y.

gnuplot> set xlabel "X-AXIS"
gnuplot> set ylabel "Y-AXIS"
gnuplot> set xrange [0:5]
gnuplot> set yrange [-2:2]
gnuplot> plot sin(x)





Если метод вывода не задан, график выводится на экран. С помощью команды set terminal можно задать вывод графика на принтер, в файл postscript и т.д. Gnuplot создает различные графики с помощью различных драйверов, поэтому он не зависит от платформы (хотя качество графика еще зависит от способа вывода). Методы вывода, которые может использовать gnuplot, могут быть просмотрены с помощью команды set terminal.

gnuplot> set terminal

Available terminal types:
unknown Unknown terminal type - not a plotting device
table Dump ASCII table of X Y [Z] values to output
linux Linux PC with (s)vgalib
 ....
tpic TPIC -- LaTeX picture environment with tpic \specials
pstricks LaTeX picture environment with PSTricks macros
texdraw LaTeX texdraw environment
mf Metafont plotting standard

gnuplot> set terminal postscript
Terminal type set to 'postscript'
Options are 'landscape noenhanced monochrome dashed defaultplex "Helvetica" 14'


Вывод в файл postscript задается с помощью команды set terminal postscript. Если направление вывода не задано, созданные данные postscript выводятся на экран. Команда set output  меняет направление вывода.

gnuplot> set output "plot.ps"
gnuplot> plot sin(x)


Использование команд оболочки

Вы можете временно прервать интерактивную сессию gnuplot. Для использования команд оболочки используйте команду shell. Для возврата в gnuplot используется команда exit. Одна команда оболочки может быть исполнена с помощью символа ! перед командой, например !ls -a.
Gnuplot поддерживает команды pwd и cd, с помощью которых можно просматривать или менять рабочую директорию. Рабочей считается директория, к которой обращается gnuplot. Для смены директории введите cd "../other/dir". Кавычки обязательны.

Команды для подстановки, объявления функций, вычислений и т.д.

Вы можете использовать gnuplot как простой калькулятор. Чтобы подставить численное значение вместо переменной, просто введите "variable=value" в командной строке gnuplot. Чтобы просмотреть значение переменной, используйте команду print.

gnuplot> a=10
gnuplot> print a
10


Подстановка "Variable=expression" присваивает рассчитанное значение переменной. 

gnuplot> a=1+2*sqrt(3)
gnuplot> print log(a)
1.49606798806764
  
Объявленная переменная может использоваться в команде plot. Gnuplot поддерживает константу "pi". Построим график функции a*sin(x) от -2pi до +2pi, где a=0.5:

gnuplot> set xrange [-2*pi:2*pi]
gnuplot> a=0.5
gnuplot> plot a*sin(x)


Вы также можете определить собственную функцию, например:


gnuplot> f(x)=sin(x)*cos(x)

Можно также использовать пользовательские переменные в таких функциях:


gnuplot> f(x)=a*sin(x)*cos(x)

Перевод. Оригинал здесь

Комментариев нет:

Отправить комментарий