[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
MathGL имеет встроенный скриптовый язык MGL для обработки и отображения данных. Скрипты MGL можно использовать как независимо (программами UDAV, mgl2png, mgl2eps, mgl2svg и пр., see section Утилиты для MGL) так и вызовами библиотеки.
Язык MGL достаточно простой. Каждая строка – отдельная команда. Первое слово – имя команды, а все остальные ее аргументы. Команда может иметь до 1000 аргументов (по крайней мере сейчас). Слова разделяются одно от другого пробелом или символом табуляции. Различий между верхним и нижним индексом нет, т.е. переменные a и A идентичны. Символ ‘#’ начинает комментарий – все символы после него игнорируются до конца строки. Исключением является случай, когда ‘#’ входит в строку. Опции команды указываются после символа ‘;’ (see section Опции команд). Символ ‘:’ начинает новую команду (подобно переводу строки) если он расположен не внутри скобок или строки.
Если строка содержит ссылки на внешние параметры (‘$0’, ‘$1’ ... ‘$9’) или макроопределения (‘$a’, ‘$b’ ... ‘$z’), то текущие значения параметров/макроопределений подставляются в строку вместо ссылки до выполнением команды. Это позволяет использовать один и тот же скрипт при различных входных параметрах командной строки или вводить макроопределения по ходу исполнения команд скрипта.
Аргументы команды могут быть строками, переменными или числами.
a(1)
или a(1,:)
или a(1,:,:)
– вторая строка массива a, a(:,2)
или a(:,2,:)
– третий столбец, a(:,:,0)
– первый срез и т.д. Также можно выделить часть массива с m-го по n-ый элемент a(m:n,:,:)
или просто a(m:n)
.
a('n*w^2/exp(t)')
), если столбцы данных были именованы командой idset или в файле данных (в строке начинающейся с ##
).
tmp[i,j] = sqrt(dat[i,5,j]+1)
.
Временные массивы не могут стоять в качестве первого аргумента команд, создающих массивы (например, ‘new’, ‘read’, ‘hist’ и т.д.).
nan=#QNAN, pi=3.1415926..., on=1, off=0, :=-1
, переменные с суффиксами (see section Суффиксы переменных), переменные определенные командой define. Также массивы размером 1x1x1 считаются скалярами (например, ‘pi/dat.nx’).
Перед первым использованием все переменные должны быть определены с помощью команд, создающих массивы (new, var, list, copy, read, hist, sum и др., see section Создание данных и Создание новых данных).
Команды могут иметь несколько наборов аргументов (например, plot ydat
и plot xdat ydat
). Все аргументы команды для выбранного набора должны быть указаны, однако часть из них могут иметь значения по умолчанию. Такие аргументы в описании команд будут помещены в квадратные скобки [], например plot ydat ['stl'='' zval=nan]
. При этом запись [arg1 arg2 arg3 ...]
подразумевает [arg1 [arg2 [arg3 ...]]]
, т.е. опускать можно только аргументы с конца, если вы согласны с их значениями по умолчанию. Например, plot ydat '' 1
или plot ydat ''
правильно, а plot ydat 1
не правильно (аргумент 'stl'
пропущен).
Все команды MGL можно разделить на несколько групп. В дальнейшем будет использованы следующие обозначения при описании команд: имя команды выделено жирным, строки заключены в одинарные кавычки ”, переменные выделены курсивом, числа (скаляры) выделены моноширинным шрифтом. Необязательные аргументы будут помещены в квадратные скобки [] и показаны их значения по умолчанию. Подробную информацию о цвете и стиле линий (see section Стиль линий), цветовых схемах (see section Цветовая схема), стиле текста и символах TeX (see section Стиль текста), текстовых формулах (see section Текстовые формулы) можно найти в соответствующих разделах.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Возможности библиотеки MathGL довольно богаты – число только основных типов графиков превышает 50 видов. Кроме того, есть функции для обработки данных, настройки вида графика и пр. и пр. Тем не менее, я старался придерживаться единого стиля в порядке аргументов функций и способе их “настройки”. В основном все ниже сказанное относится к функциям рисования различных графиков.
Всего основных концепций (базисных идей) четыре:
Кроме основных концепций я хотел бы остановиться на нескольких, как оказалось, нетривиальных моментах – способе указания положения графика, осей координат и строковых параметров линий, поверхностей, текста.
1.1.1 Оси координат | ||
1.1.2 Стиль линий | ||
1.1.3 Цветовая схема | ||
1.1.4 Стиль текста | ||
1.1.5 Текстовые формулы |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Представление системы координат в MathGL состоит из двух частей. Вначале координаты нормируются в интервал MinxMax (see section Параметры осей координат). Если флаг Cut установлен, то точки вне интервала отбрасываются, в противном случае, они проецируются на ограничивающий параллелепипед (see section Обрезание). Кроме того, отбрасываются точки внутри границ, определенных переменными CutMinxCutMax и точки, для которых значение функции CutOff
() не равно нулю. После этого формулы перехода в криволинейную систему координат SetFunc()
применяются к каждой точке. Наконец, точка данных отображается с помощью одной из графических функций.
Величины Max, Min можно изменять вручную. Однако, после этого необходимо вызвать функцию RecalcBorder()
для настройки графика. Более удобный и безопасный путь состоит в вызове функций Axis(), SetRanges()
и др. В последнем случае функция RecalcBorder()
вызывается автоматически. Размеры осей можно задавать и автоматически по минимальному и максимальному значениям массива данных. Для этого предназначены функции XRange(), YRange(), ZRange()
. Второй не обязательный аргумент указывает, заменять ли новые значения диапазона изменения оси координат (по умолчанию) или только расширить уже существующий диапазон.
Точка пересечения осей координат задается переменной Org и действует на последующие вызовы функций рисования осей координат и сетки. По умолчанию, если точка пересечения осей координат попадает вне диапазона осей координат, то она проецируется на границу области. Изменить такое поведение можно, задав AutoOrg=false
. В случае, если одно из значений Org равно NAN, то соответствующее значение будет выбрано автоматически.
Кроме привычных осей x, y, z есть еще одна ось – цветовая шкала – ось c. Она используется при окрашивании поверхностей и задает границы изменения функции при окрашивании. При вызове Axis()
ее границы автоматически устанавливаются равными Min.z и Max.z. Возможно и ручное изменение границ цветового интервала посредством вызова функции CAxis()
или изменение границ по заданному массиву CRange()
. Используйте Colorbar()
для отображения цветовой шкалы.
Вид меток по осям определяется функцией SetTicks()
(see section Параметры осей координат). Она имеет 3 аргумента: первый d задает шаг меток (если положительны) или их число (если отрицательны) или логарифмические метки (если равны нулю); второ ns задает число "подметок"; последний определяет начальную точку для меток (по умолчанию это точка пересечения осей). Функция SetTuneTicks включает/выключает выделение общего множителя (большого или малого факторов в диапазоне) для меток осей координат. Наконец, если стандартный вид меток не устраивает пользователя, то их шаблон можно задать явно (можно использовать и ТеХ символы), воспользовавшись функциями SetXTT(), SetYTT(). SetZTT(). SetCTT()
. Кроме того, в качестве меток можно вывести произвольный текст использовав функцию SetTicksVal()
.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Стиль линии задается строкой, которая может содержать символ цвета (‘wkrgbcymhRGBCYMHWlenupqLENUPQ’), тип пунктира (‘-|;:ji’ или пробел), ширину линии (‘0123456789’) и тип маркера (‘o+xsd.^v’ и модификатор ‘#’). Если пропущен цвет или тип пунктира, то используется значение по умолчанию с последним указанным цветом или значение из палитры (для see section 1D графики). По умолчанию палитры содержит следующие цвета: темно серый ‘H’, синий ‘b’, зеленый ‘g’, красный ‘r’, голубой ‘c’, пурпурный ‘m’, yellow ‘y’, серый ‘h’, сине-зеленый ‘l’, небесно-синий ‘n’, оранжевый ‘q’, желто-зеленый ‘e’, сине-фиолетовый ‘u’, фиолетовый ‘p’.
Символы цвета: ‘k’ -- черный, ‘r’ -- красный, ‘R’ -- темно красный, ‘g’ -- зеленый, ‘G’ -- темно зеленый, ‘b’ -- синий, ‘B’ -- темно синий, ‘c’ -- голубой, ‘C’ -- темно голубой, ‘m’ -- пурпурный, ‘M’ -- темно пурпурный, ‘y’ -- желтый, ‘Y’ -- темно желтый (золотой), ‘h’ -- серый, ‘H’ -- темно серый, ‘w’ -- белый, ‘W’ -- светло серый, ‘l’ -- сине-зеленый, ‘L’ -- темно сине-зеленый, ‘e’ -- желто-зеленый, ‘E’ -- темно желто-зеленый, ‘n’ -- небесно-синий, ‘N’ -- темно небесно-синий, ‘u’ -- сине-фиолетовый, ‘U’ -- темно сине-фиолетовый, ‘p’ -- фиолетовый, ‘P’ -- темно фиолетовый, ‘q’ -- оранжевый, ‘Q’ -- темно оранжевый (коричневый).
Тип пунктира: пробел -- нет линии (для рисования только маркеров), ‘-’ -- сплошная линия (■■■■■■■■■■■■■■■■), ‘|’ -- длинный пунктир (■■■■■■■■□□□□□□□□), ‘;’ -- пунктир (■■■■□□□□■■■■□□□□), ‘=’ -- короткий пунктир (■■□□■■□□■■□□■■□□), ‘:’ -- точки (■□□□■□□□■□□□■□□□), ‘j’ -- пунктир с точками (■■■■■■■□□□□■□□□□), ‘i’ -- мелкий пунктир с точками (■■■□□■□□■■■□□■□□).Типы маркеров: ‘o’ – окружность, ‘+’ – крест, ‘x’ – косой крест, ‘s’ - квадрат, ‘d’ - ромб, ‘.’ – точка, ‘^’ – треугольник вверх, ‘v’ – треугольник вниз, ‘<’ – треугольник влево, ‘>’ – треугольник вправо, ‘#*’ – знак Y, ‘#+’ – крест в квадрате, ‘#x’ – косой крест в квадрате, ‘#.’ – точка в окружности. Если в строке присутствует символ ‘#’, то используются символы с заполнением.
Стили линий и маркеров.
На конце и в начале линии можно выводить специальный символ (стрелку), если в строке указать один из символов: ‘A’ – стрелка наружу, ‘V’ – стрелка внутрь, ‘I’ – поперечная черта, ‘K’ – стрелка с чертой, ‘T’ – треугольник, ‘S’ – квадрат, ‘D’ – ромб, ‘O’ – круг, ‘_’ – нет стрелки (по умолчанию). При этом действует следующее правило: первый символ определяет стрелку на конце линии, второй символ – стрелку в начале линии. Например, ‘r-A’ – красная сплошная линия со стрелкой на конце, ‘b|AI’ – синий пунктир со стрелкой на конце и чертой вначале, ‘_O’ – линия с текущим стилем и кружком вначале. Эти стили действуют и при построении графиков (например, 1D графики).
Стили стрелок.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Цветовая схема используется для определения цвета поверхностей, линий уровня и пр. Цветовая схема задается строкой s, которая содержит символы цвета (see section Стиль линий) или символы ‘d#:|’. Символ ‘d’ указывает на определение цвета в зависимости от положения точки в пространстве, а не по амплитуде данных. Символ ‘#’ переключает рисование поверхности на сетчатое (для трехмерных поверхностей) или включает рисование сетки на поверхности. Символ ‘|’ отключает интерполяцию цвета в цветовой схеме. Это может быть полезно для “резких” цветов, например, при рисовании матриц. Если в строке встречается символ ‘:’, то он принудительно заканчивает разбор строки для стиля поверхности. После этого символа могут идти описание стиля текста или оси вращения кривой/линий уровня. Цветовая схема может содержать до 32 значений цвета.
В цветовой схеме можно использовать тональные (“подсвеченные”) цвета (не в стиле линий!). Тональный цвет задается двумя символами: первый – обычный цвет, второй – его яркость цифрой. Цифра может быть в диапазоне ‘1’...‘9’. При этом ‘5’ соответствует нормальному цвету, ‘1’ – очень темная версия цвета (почти черный), ‘9’ – очень светлая версия цвета (почти белый). Например цветовая схема может быть ‘b2b7wr7r2’.
Цвета и их идентификаторы.
При определении цвета по амплитуде (наиболее часто используется) окончательный цвет определяется путем линейной интерполяции массива цветов. Массив цветов формируется из цветов, указанных в строке спецификации. Аргумент – амплитуда, нормированная между Cmin – Cmax (see section Параметры осей координат). Например, строка из 4 символов ‘bcyr’ соответствует изменению цвета от синего (минимальное значение) через голубой и желтый (промежуточные значения) к красному (максимальное значение). Строка ‘kw’ соответствует изменению цвета от черного (минимальное значение) к белому (максимальное значение). Строка из одного символа (например, ‘g’) соответствует однотонному цвету (в данному случае зеленому).
Есть несколько полезных цветовых схем. Строка ‘kw’ дает обычную серую (черно-белую) схему, когда большие значения светлее. Строка ‘wk’ представляет обратную серую схему, когда большие значения темнее. Строки ‘kRryw’, ‘kGgw’, ‘kBbcw’ представляют собой хорошо известные схемы hot, summer и winter. Строки ‘BbwrR’ и ‘bBkRr’ позволяют рисовать двухцветные фигуры на белом или черном фоне, когда отрицательные значения показаны синим цветом, а положительные – красным. Строка ‘BbcyrR’ дает цветовую схему, близкую к хорошо известной схеме jet.
Наиболее популярные цветовые схемы.
При определении цвета по положению точки в пространстве окончательный цвет определяется по формуле c=x*c[1] + y*c[2] + z*c[3]. Здесь c[1], c[2], c[3] – первые три цвета в цветовом массиве; x, y, z – координаты точки, нормированные на MinxMax. Такой тип определения цвета полезен, например, при построении поверхностей уровня, когда цвет дает представление о положении точки в пространстве.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Стиль текста задается строкой, которая может содержать несколько символов: тип шрифта (‘ribwou’) и/или выравнивания (‘LRC’), а также цвет текста ‘wkrgbcymhRGBCYMHW’ (see section Стиль линий) после символа ‘:’. Например, ‘biC:b’ соответствует жирному курсиву с выравниванием по центру синего цвета.
Начертания шрифта: ‘r’ – прямой шрифт, ‘i’ – курсив, ‘b’ – жирный. По умолчанию используется прямой шрифт. Типы выравнивания текста: ‘L’ – по левому краю (по умолчанию), ‘C’ – по центру, ‘R’ – по правому краю. Дополнительные эффекты шрифта: ‘w’ – контурный, ‘o’ – надчеркнутый, ‘u’ – подчеркнутый.
Синтаксический разбор LaTeX-их команд по умолчанию включен. Это команды смены стиля текста (например, \b для жирного текста): \a или \overline – надчеркивание, \b или \textbf – жирный, \i или \textit – курсив, \r или \textrm – прямой (отменяет стили жирного и курсива), \u или \underline – подчеркнутый, \w или \wire – контурный, \big – большего размера, @ – меньшего размера. Нижний и верхний индексы задаются символами ‘_’ и ‘^’. При этом изменение стиля применяется только к следующему символу или к символам в фигурных скобках {}, которые понимаются как единый блок. Например, сравните строки ‘sin (x^{2^3})’ и ‘sin (x^2^3)’. Можно также менять цвет текста внутри строки с помощью команд #? или \color?, где ‘?’ – символ цвета (see section Стиль линий). Например, слова ‘Blue’ и ‘red’ будут окрашены в соответствующий цвет в строке ‘#b{Blue} and \colorr{red} text’. Большинство функций понимает символ новой строки ‘\n’ и позволяет выводить много строчный текст. Наконец, можно использовать символы с произвольным UTF кодом с помощью команды \utf0x????
. Например, \utf0x3b1
даст символ
α.
Распознаются также большинство символов TeX и AMSTeX, команды смены стиля текста (\textrm, \textbf, \textit, \textsc, \overline, \underline), акценты (\hat, \tilde, \dot, \ddot, \acute, \check, \grave, \bar, \breve) и корни (\sqrt, \sqrt3, \sqrt4). Полный список содержит около 2000 символов. Отмечу, что первый пробел (пробел, табуляция и пр.) после команды игнорируется, а все остальные пробелы печатаются обычным образом. Например, следующие строки дают одинаковый результат \tilde a: ‘\tilde{a}’; ‘\tilde a’; ‘\tilde{}a’.
В частности, распознаются греческие буквы: α – \alpha, β – \beta, γ – \gamma, δ – \delta, ε – \epsilon, η – \eta, ι – \iota, χ – \chi, κ – \kappa, λ – \lambda, μ – \mu, ν – \nu, o – \o, ω – \omega, ϕ – \phi, π – \pi, ψ – \psi, ρ – \rho, σ – \sigma, θ – \theta, τ – \tau, υ – \upsilon, ξ – \xi, ζ – \zeta, ς – \varsigma, ɛ – \varepsilon, ϑ – \vartheta, φ – \varphi, ϰ – \varkappa; A – \Alpha, B – \Beta, Γ – \Gamma, Δ – \Delta, E – \Epsilon, H – \Eta, I – \Iota, C – \Chi, K – \Kappa, Λ – \Lambda, M – \Mu, N – \Nu, O – \O, Ω – \Omega, Φ – \Phi, Π – \Pi, Ψ – \Psi, R – \Rho, Σ – \Sigma, Θ – \Theta, T – \Tau, Υ – \Upsilon, Ξ – \Xi, Z – \Zeta.Еще примеры наиболее общеупотребительных TeX-их символов: ∠ – \angle, ⋅ – \cdot, ♣ – \clubsuit, ✓ – \checkmark, ∪ – \cup, ∩ – \cap, ♢ – \diamondsuit, ◇ – \diamond, ÷ – \div, ↓ – \downarrow, † – \dag, ‡ – \ddag, ≡ – \equiv, ∃ – \exists, ⌢ – \frown, ♭ – \flat, ≥ – \ge, ≥ – \geq, ≧ – \geqq, ← – \gets, ♡ – \heartsuit, ∞ – \infty, ∫ – \int, \Int, ℑ – \Im, ♢ – \lozenge, ⟨ – \langle, ≤ – \le, ≤ – \leq, ≦ – \leqq, ← – \leftarrow, ∓ – \mp, ∇ – \nabla, ≠ – \ne, ≠ – \neq, ♮ – \natural, ∮ – \oint, ⊙ – \odot, ⊕ – \oplus, ∂ – \partial, ∥ – \parallel, ⊥ –\perp, ± – \pm, ∝ – \propto, ∏ – \prod, ℜ – \Re, → – \rightarrow, ⟩ – \rangle, ♠ – \spadesuit, ~ – \sim, ⌣ – \smile, ⊂ – \subset, ⊃ – \supset, √ – \sqrt or \surd, § – \S, ♯ – \sharp, ∑ – \sum, × – \times, → – \to, ∴ – \therefore, ↑ – \uparrow, ℘ – \wp.
Размер текста может быть задан явно (если size>0) или относительно базового размера шрифта для рисунка |size|*FontSize при size<0. Значение size=0 указывает, что соответствующая строка выводиться не будет. Базовый размер шрифта измеряется во внутренних единицах. Специальные функции SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()
позволяют задавать его в более “привычных” единицах.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
MathGL имеет быстрый парсер текстовых формул , понимающий большое число функций и операций. Базовые операции: ‘+’ – сложение, ‘-’ – вычитание, ‘*’ – умножение, ‘/’ – деление, ‘^’ – возведение в целосичленную степень. Также есть логические операции: ‘<’ – истина если if x<y, ‘>’ – истина если x>y, ‘=’ – истина если x=y, ‘&’ – истина если x и y оба не равны нулю, ‘|’ – истина если x или y не нуль. Логические операции имеют наинизший приоритет и возвращают 1 если истина или 0 если ложно.
Базовые функции: ‘sqrt(x)’ – квадратный корень из x, ‘pow(x,y)’ – x в степени y, ‘ln(x)’ – натуральный логарифм x, ‘lg(x)’ – десятичный логарифм x, ‘log(a,x)’ – логарифм по основанию a от x, ‘abs(x)’ – модуль x, ‘sign(x)’ – знак x, ‘mod(x,y)’ – остаток от деления x на y, ‘step(x)’ – ступенчатая функция, ‘int(x)’ – целая часть x, ‘rnd’ – случайное число, ‘pi’ – число π = 3.1415926…
Тригонометрические функции: ‘sin(x)’, ‘cos(x)’, ‘tan(x)’ (или ‘tg(x)’). Обратные тригонометрические функции: ‘asin(x)’, ‘acos(x)’, ‘atan(x)’. Гиперболические функции: ‘sinh(x)’ (или ‘sh(x)’), ‘cosh(x)’ (или ‘ch(x)’), ‘tanh(x)’ (или ‘th(x)’). Обратные гиперболические функции: ‘asinh(x)’, ‘acosh(x)’, ‘atanh(x)’.
Специальные функции: ‘gamma(x)’ – гамма функция Γ(x) = ∫0∞ tx-1 exp(-t) dt, ‘psi(x)’ – дигамма функция ψ(x) = Γ′(x)/Γ(x) для x≠0, ‘ai(x)’ – Эйри функция Ai(x), ‘bi(x)’ – Эйри функция Bi(x), ‘cl(x)’ – функция Клаузена, ‘li2(x)’ (или ‘dilog(x)’) – дилогарифм Li2(x) = -ℜ∫0xds log(1-s)/s, ‘sinc(x)’ – функция sinc(x) = sin(πx)/(πx) для любых x, ‘zeta(x)’ – зета функция Римана ζ(s) = ∑k=1∞k-s для s≠1, ‘eta(x)’ – эта функция η(s) = (1 - 21-s)ζ(s) для произвольного s, ‘lp(l,x)’ – полином Лежандра Pl(x), (|x|≤1, l≥0), ‘w0(x)’, ‘w1(x)’ – функции Ламберта W. Функции W(x) определены как решение уравнения: W exp(W) = x.
Экспоненциальные интегралы: ‘ci(x)’ – cos-интеграл Ci(x) = ∫0xdt cos(t)/t, ‘si(x)’ – sin-интеграл Si(x) = ∫0xdt sin(t)/t, ‘erf(x)’ – функция ошибки erf(x) = (2/√π) ∫0xdt exp(-t2) , ‘ei(x)’ – интеграл Ei(x) = -PV(∫-x∞dt exp(-t)/t) (где PV обозначает главное значение), ‘e1(x)’ – интеграл E1(x) = ℜ∫1∞dt exp(-xt)/t, ‘e2(x)’ – интеграл E2(x) = ℜ∫1∞dt exp(-xt)/t2, ‘ei3(x)’ – интеграл Ei3(x) = ∫0xdt exp(-t3) для x≥0.
Функции Бесселя: ‘j(nu,x)’ – функция Бесселя первого рода, ‘y(nu,x)’ – функция Бесселя второго рода, ‘i(nu,x)’ – модифицированная функция Бесселя первого рода, ‘k(nu,x)’ – модифицированная функция Бесселя второго рода.
Эллиптические интегралы: ‘ee(k)’ – полный эллиптический интеграл E(k) = E(π/2,k), ‘ek(k)’ – полный эллиптический интеграл K(k) = F(π/2,k), ‘e(phi,k)’ – эллиптический интеграл E(φ,k) = ∫0φdt √(1 - k2sin2(t)), ‘f(phi,k)’ – эллиптический интеграл F(φ,k) = ∫0φdt 1/√(1 - k2sin2(t))
Функции Якоби: ‘sn(u,m)’, ‘cn(u,m)’, ‘dn(u,m)’, ‘sc(u,m)’, ‘sd(u,m)’, ‘ns(u,m)’, ‘cs(u,m)’, ‘cd(u,m)’, ‘nc(u,m)’, ‘ds(u,m)’, ‘dc(u,m)’, ‘nd(u,m)’.
Некоторые из функций могут быть недоступны если флаг NO_GSL был определен при компиляции библиотеки MathGL.
При разборе формул нет различия между верхним и нижним регистром. Если аргумент лежит вне области определения функции, то возвращается NaN.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Команды в этой группе влияют на вид всего рисунка. Соответственно они должны располагаться перед вызовом функций непосредственно рисующих графики.
1.2.1 Прозрачность | ||
1.2.2 Освещение | ||
1.2.3 Туман | ||
1.2.4 Базовые размеры | ||
1.2.5 Масштабирование | ||
1.2.6 Обрезание | ||
1.2.7 Прочие настройки |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Эти команды настраивают тип и степень прозрачности поверхностей. Главной является функция alpha, которая включает/выключает прозрачность для всех графиков, созданных после вызова alpha. Функция alphadef устанавливает величину alpha-канала по умолчанию. Прозрачность можно выключить для отдельного графика с помощью transparent. Наконец, функция transptype задает тип прозрачности. См. раздел Transparent surface – пример использования, для примеров кода и графика.
[val=on]
Включает/выключает прозрачность для всего рисунка. По умолчанию прозрачность выключена. Используйте transparent off
для конкретного графика для выключения прозрачности.
val
Задает значение прозрачности по умолчанию для всех графиков. Начальное значение 0.5.
val
Временно включает/возвращает прозрачность графиков.
val
Задает тип прозрачности. Обычная прозрачность (‘0’) – "закрытые" объекты видны меньше чем закрывающие. "Стеклянная" прозрачность (‘1’) – закрытые и закрывающие объекты единообразно ослабляют интенсивность света (по RGB каналам). "Ламповая" прозрачность (‘2’) – закрытые и закрывающие объекты являются источниками дополнительного освещения (рекомендую установить alphadef 0.3
или меньше в этом случае). See section Обычная прозрачность, "Стеклянная" прозрачность, "Ламповая" прозрачность.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Эти функции настраивают освещение графика. Главная функция light включает/выключает освещение графиков построенных после ее вызова. MathGL поддерживает до 10 независимых источников света. Положение, цвет, яркость каждого источника света можно задавать по отдельности. По умолчанию включен только первый (с порядковым номером 0
) источник света белого цвета, расположенный сверху.
[val=on]
Включает/выключает освещение графика. По умолчанию освещение выключено.
n val
Включает/выключает n-ый источник света.
n xpos ypos zpos
['col'='w' br=0.5
]Добавляет источник света с номером n в положение {xpos, ypos, zpos} с цветом col и яркостью br, которая должна быть в диапазоне [0,1].
val
Задает яркость рассеянного освещения. Значение должно быть в диапазоне [0,1].
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
val [dz=0.25]
Имитирует туман на графике. Туман начинается на относительном расстоянии dz от точки обзора и его плотность растет экспоненциально вглубь по закону ~1-exp(-d*z). Здесь z – нормализованная на 1 глубина графика. Если d=0
то туман отсутствует. См. раздел Surface in fog – пример использования, для примеров кода и графика.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Эти команды задают величины большинства параметров графика, включая размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие настройки, они подействуют только на графики созданные после изменения настроек.
val
Относительный размер прямоугольников в bars, barh, boxplot
. Значение по умолчанию 0.7
.
val
Размер маркеров для 1D графики. Значение по умолчанию 1
.
val
Размер стрелок для 1D графики, линий и кривых (see section Рисование примитивов). Значение по умолчанию 1
.
val
Базовая толщина линий. Значения <1 игнорируются. Для значений >1 реальная толщина получается перемножением указанной ширины линии на данное значение. Увеличение ширины линии актуально для больших растровых рисунков. Значение по умолчанию 1
.
val
[stt=1
]Относительная длина меток осей координат. Значение по умолчанию 0.1
. Параметр stt>0 задает относительную длину подметок, которые в sqrt(1+stt)
раз меньше.
Стиль меток (stl) и подметок (sub) осей координат. Если stl=''
, то используется стиль по умолчанию (‘k’ или ‘w’ в зависимости от типа прозрачности). Если sub=''
, то используется стиль меток (т.е. stl).
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Эти команды управляют масштабированием всего рисунка (zoom) или отдельной картинки (plotfactor). Обычно эти функции используются для удаления пустого места вокруг графиков.
val
Масштаб картинки (значение должно быть больше 1). Не рекомендуется устанавливать значения меньше 1.5. Это аналог zoom, но применяется только к конкретной картинке, заданной inplot. Используйте ноль для включения автоматического масштабирования.
x1 y1 x2 y2
Масштабирует весь рисунок. После вызова функции текущий график будет очищен и в дальнейшем рисунок будет содержать только область [x1,x2]*[y1,y2] от исходного рисунка. Координаты x1, x2, y1, y2 меняются в диапазоне от 0 до 1. Внимание! эти настройки не могут быть переписаны никакими другими функциями. Используйте zoom 0 0 1 1
для перехода в масштаб по умолчанию.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Эти команды задают условия когда точка будет исключена (вырезана) из рисования. Замечу, что все точки со значением(-ями) nan
по одной из координат или амплитуде автоматически исключаются из рисования.
val
Задает обрезание точек за пределами осей координат. Если on
то такие точки исключаются из рисования (это по умолчанию) иначе они проецируются на ограничивающий прямоугольник.
x1 y1 z1 x2 y2 z2
Задает границы параллелепипеда внутри которого точки не рисуются. Если границы одинаковы (переменные равны), то параллелепипеда считается пустым. См. раздел CutMinMax – пример использования, для примеров кода и графика.
Задает условие обрезания по формуле cond. Это условие исключает точки из рисования если результат вычисления формулы не равен нулю. Установите аргумент ''
для выключения условия обрезания. См. раздел CutOff – пример использования, для примеров кода и графика.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
val=6
]Задает стиль и размер шрифта (see section Вывод текста). Вначале используется ‘rC’ – прямой шрифт с выравниванием по центру. По умолчанию размер подписей оси координат в 1.4 раза больше.
val
Включает/выключает вращение меток и подписей осей координат вдоль оси. Начальное значение on
.
Задает палитру как последовательность цветов. Значение по умолчанию "Hbgrcmyhlnqeup"
, что соответствует цветам: темно серый ‘H’, синий ‘b’, зеленый ‘g’, красный ‘r’, голубой ‘c’, малиновый ‘m’, желтый ‘y’, серый ‘h’, сине-зеленый ‘l’, небесно-голубой ‘n’, оранжевый ‘q’, желто-зеленый ‘e’, сине-фиолетовый ‘u’, фиолетовый ‘p’. Палитра в основном используется в 1D графиках (see section 1D графики) для кривых с неопределенным стилем линии.
num
Задает ориентировочное число линий в mesh, fall, grid, число стрелок (штрихов) в vect, dew и число ячеек в cloud. По умолчанию (=0) рисуются все линии, стрелки, ячейки.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Этот большой набор команд определяет вид осей и меток координат. Перед построением для каждой точки выполняются 3 преобразования: сначала определяется возможность рисования точки (see section Обрезание), далее применяются формулы перехода к криволинейным координатам и наконец точка отображается.
x1 y1 x2 y2
x1 y1 z1 x2 y2 z2
x1 x2 y1 y2 [z1=0 z2=0]
Задает диапазон изменения координат. Если минимальное и максимальное значение координаты равны, то они игнорируются по данному направлению. Также устанавливает размер цветовой шкалы, аналогично команде caxis z1 z2
. Начальные диапазоны равны [-1, 1].
Задает формулы перехода к криволинейным координатам. Каждая строка является математическим выражением, зависящим от старых координат ‘x’, ‘y’, ‘z’ и ‘a’ или ‘c’ для цветовой шкалы. Например, для цилиндрических координат будет axis 'x*cos(y)' 'x*sin(y)' 'z'
. Для удаления формул соответствующий параметр должен быть пустым ''
. Использование формул преобразования слегка замедляет программу, т.е.. axis '' '' ''
быстрее чем axis '1*x' '1*y' '1*z'
. Параметр fa задает аналогичную формулу для цветовой шкалы. See section Текстовые формулы.
how
Устанавливает одну из предопределенных систем криволинейных координат в зависимости от параметра how: ‘0’ – декартова система (нет преобразования координат, наиболее быстрая); ‘1’ – полярные координаты x_n=x*cos(y),y_n=x*sin(y), z_n=z; ‘2’ – сферические координаты x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y); ‘3’ – параболические координаты x_n=x*y, y_n=(x*x-y*y)/2, z_n=z; ‘4’ – Paraboloidal coordinates x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y; ‘5’ – Oblate coordinates x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y); ‘6’ – Prolate coordinates x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y); ‘7’ – эллиптические координаты x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z; ‘8’ – тороидальные координаты x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y)); ‘9’ – бисферические координаты x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y)); ‘10’ – биполярные координаты x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z.
z1 z2
Задает масштаб цветовой шкалы (c-координаты). Эти значения используются для определения цвета поверхностей и прочих 2D и 3D графиков. Начальный диапазон равен [-1, 1].
x0 y0 [z0=nan]
Задает центр пересечения осей координат. Если одно из значений равно nan
, то выбрается оптимальное положение осей координат по этому направлению.
val
Задает рисование треугольных (Ternary) осей координат. Это специальный тип графика для 3 зависимых координат (компонент) a, b, c таких, что a+b+c=1. MathGL использует только 2 независимые координаты a=x и b=y поскольку их достаточно для построения всех графиков. При этом третья координата z является независимым параметром для построения линий уровня, поверхностей и т.д. См. раздел Ternary plot – пример использования, для примеров кода и графика.
add=off fact=0
]add=off fact=0
]add=off fact=0
]add=off fact=0
]Задает диапазон изменения x-,y-,z-,c- координат как минимальное и максимальное значение массива dat. Параметр add указывает добавлять новый диапазон к существующему или заменять его. Параметр fact дополнительно расширяет диапазон на величину (Max-Min)*fact.
x1 x2
x1 x2
x1 x2
x1 x2
Задает диапазон изменения x-,y-,z-,c- координат. См. также axis.
val [sub=0 org=nan]
val [sub=0 org=nan]
val [sub=0 org=nan]
val
Задает шаг меток осей val, число подметок ns и начальное положение меток org. Переменная val задает шаг меток (если положительна) или их число на оси (если отрицательна). Нулевое значение задает логарифмические метки. Если org=NAN
, то используется значение из origin.
Задает шаблоны для меток вдоль x-,y-,z-оси или colorbar. Шаблон может содержать и символы TeX. Если xtt, ytt, ztt, ctt=''
, то используется шаблон по умолчанию (в простейшем случае ‘%.2g’). Установка шаблона выключает автоматическое улучшение вида меток.
val1
'lbl1' [val2
'lbl2' ...]val1
'lbl1' [val2
'lbl2' ...]val1
'lbl1' [val2
'lbl2' ...]Задает явное положение val и подписи lbl для меток вдоль оси. Метки могут содержать и символы TeX.
Автоматически задает шаг меток осей, число подметок и начальное положение меток для осей координат dir в виде наиболее удобном для человека.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Эти команды контролируют где и как график будет расположен. Существует определенный порядок вызова этих функций для лучшего вида графика. Вначале должны вызываться команды subplot или inplot для указания местоположения вывода. После них – команды вращения rotate и сжатия aspect. И наконец любые другие функции для рисования графика. Вместо вращения графика можно вызвать команды columnplot для расположения графиков в столбец одного над другим или stickplot для расположения в линейку.
nx ny m [dx=0 dy=0]
Помещает последующий вывод в m-ую ячейку сетки размером nx*ny от всего рисунка. Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания "подграфика". С эстетической точки зрения не рекомендуется вызывать эту функцию с различными (или не кратными) размерами сетки. Ячейка может быть дополнительно сдвинута относительно своего обычного положения на относительный размер dx, dy.
nx ny m
'style'Аналогично предыдущему, но место для осей/colorbar резервируется только если строка style содержит: ‘L’ или ‘<’ – с левого края, ‘R’ или ‘>’ – с правого края, ‘A’ или ‘^’ – с верхнего края, ‘U’ или ‘_’ – с нижнего края.
x1 x2 y1 y2 [rel=off]
Помещает последующий вывод в прямоугольную область [x1, x2]*[y1, y2] (исходный размер [0,1]*[0,1]). Эта функция позволяет поместить график в произвольную область рисунка. Если параметр rel=on
, то используется позиция относительно текщего subplot (или inplot с rel=off
). Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания "подграфика".
num ind [d=0]
Помещает последующий вывод в ind-ую строку столбца из num строк. Положение столбца выбирается относительно последнего вызова subplot (или inplot с rel=off
). Параметр d задает дополнительный зазор между строк. См. раздел ColumnPlot – пример использования, для примеров кода и графика.
num ind tet phi
Помещает последующий вывод в ind-ую ячейку "бруска" из num ячеек. При этом сам брусок повернут на углы tet, phi. Положение выбирается относительно последнего вызова subplot (или inplot с rel=off
). См. раздел StickPlot – пример использования, для примеров кода и графика.
tetz tetx [tety=0]
Вращает систему координат относительно осей {x, z, y} последовательно на углы tetx, tetz, tety.
tet x y z
Вращает систему координат относительно вектора {x, y, z} на угол tet.
ax ay [az=1]
Устанавливает соотношение размеров осей в отношении ax:ay:az. Для лучшего вида следует вызывать после функции rotate.
val
Добавляет (включает) перспективу для графика. Параметр val ~ 1/z_eff \in [0,1). По умолчанию (val=0
) перспектива отключена.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
solid=off
]Экспортирует текущий кадр в файл ’fname’ (тип определяется по расширению). Параметр solid задает вывод картинки на текущем фоне (обычно белом) или полупрозрачной. Если ’fname’=”, то используется имя ‘frame####.jpg’, где ‘####’ – текущий номер кадра.
w h
Изменяет размер картинки в пикселях. Функция должна вызываться перед любыми функциями построения потому что полностью очищает содержимое рисунка. В некоторых программах исполнение этой команды может запрещено.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Эти команды рисуют рисуют простые объекты типа линий, точек, сфер, капель, конусов, и т.д.
Очищает рисунок и заполняет его цветом по умолчанию (обычно белым).
x y
['col'='r']x y z
['col'='r']Рисует точку (шарик) с координатами {x, y, z} и цветом col.
x1 y1 x2 y2
['stl'='']x1 y1 z1 x2 y2 z2
['stl'='']Рисует геодезическую линию (декартовых координатах – прямую) из точки {x1,y1,z1} в {x2,y2,z2} использую стиль линии stl. Кривая рисуется даже если часть ее лежит вне диапазона осей координат.
x1 y1 dx1 dy1 x2 y2 dx2 dy2
['stl'='']x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2
['stl'='']Рисует кривую Безье из точки {x1,y1,z1} в {x2,y2,z2} использую стиль линии stl. Касательные в точках пропорциональны {dx1,dy1,dz1}, {dx2,dy2,dz2}. Кривая рисуется даже если часть ее лежит вне диапазона осей координат.
x0 y0 z0 wy wz
['stl'='' d1=0 d2=0
]x0 y0 z0 wx wz
['stl'='' d1=0 d2=0
]x0 y0 z0 wx wy
['stl'='' d1=0 d2=0
]Рисует закрашенный прямоугольник (грань) перпендикулярно оси [x,y,z] в точке {x0, y0, z0} цветом stl и шириной wx, wy, wz вдоль соответствующего направления. При этом цвет может быть один для всей грани, или различным для разных вершин если указаны все 4 цвета (полезно для градиента цвета, например ‘wwrr’). Параметры d1!=0, d2!=0 задают дополнительный сдвиг последней точки (т.е. рисуют четырехугольник). Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
x0 y0 r
['col'='r']x0 y0 z0 r
['col'='r']Рисует сферу радиуса r с центром в точке {x, y, z} цветом stl.
x0 y0 dx dy r
['col'='b' sh=1 asp=1
]x0 y0 z0 dx dy dz r
['col'='b' sh=1 asp=1
]Рисует каплю радиуса r в точке {x0,y0,z0} вытянутую вдоль направления {dx,dy,dz} цветом col. Параметр sh определяет степень вытянутости: ‘0’ – сфера, ‘1’ – классическая капля. Параметр asp определяет относительную ширину капли (аналог "эллиптичности" для сферы). См. раздел Drops – пример использования, для примеров кода и графика.
x1 y1 z1 x2 y2 z2 r1
[r2=-1
'stl'='' edge=off
]Рисует трубу (или усеченный конус если edge=off
) между точками {x1,y1,z1}, {x2,y2,z2} с радиусами на концах r1, r2. Если r2<0, то полагается r2=r1. Цвет конуса задается строкой stl.
x1 y1 x2 y2
['st'='']x1 y1 z1 x2 y2 z2
['st'='']Рисует закрашенный прямоугольник (грань) с противоположными вершинами в точках {x1,y1,z1}, {x2,y2,z2} цветом stl. При этом цвет может быть один для всей грани, или различным для разных вершин если указаны все 4 цвета (полезно для градиента цвета, например ‘wwrr’). Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Команды для вывода текста позволяют вывести строку текста в произвольном месте рисунка, в произвольном направлении и вдоль произвольной кривой. Можно использовать произвольное начертание шрифта и многие ТеХ-ие команды (детальнее see section Стиль текста). Аргумент size определяет размер текста: размер шрифта если положителен или относительный размер (=-size*fontsize) если отрицателен.
Параметры шрифта задаются строкой, которая может содержать символы стиля (‘rbiwou’) и/или выравнивания (‘LRC’). Также строка может содержать символы цвета ‘wkrgbcymhRGBCYMHW’ (see section Стиль линий) после символа ‘:’. Стили шрифта: ‘r’ – прямой, ‘i’ – курсив, ‘b’ – жирный, ‘w’ – контурный, ‘o’ – надчеркнутый, ‘u’ – подчеркнутый. По умолчанию используется прямой шрифт. Типы выравнивания: ‘L’ – по левому краю (по умолчанию), ‘C’ – по центру, ‘R’ – по правому краю. Например, строка ‘iC:b’ соответствует курсиву синего цвета с выравниванием по центру. По умолчанию используются параметры, определенные командой font.
Если строка содержит символы ‘aA’, то текст выводится в абсолютных координатах (полагаются в диапазоне [0,1]). При этом используются координаты относительно рисунка (если указано ‘A’) или относительно последнего subplot/inplot (если указано ‘a’).
x y
'text' ['fnt'='' size=-1.4
]x y z
'text' ['fnt'='' size=-1.4
]Выводит строку text от точки {x,y,z} шрифтом fnt и размером size.
x y dx dy
'text' [size=-1.4
]x y z dx dy dz
'text' [size=-1.4
]Выводит строку text от точки {x,y,z} вдоль направления {dx,dy,dz} шрифтом fnt и размером size.
size=-1 zval=nan
]size=-1 zval=nan
]size=-1
]Выводит строку text вдоль кривой {xdat[i], ydat[i], zdat[i]} шрифтом font. Строка font может содержать символы: ‘t’ для вывода текста под кривой (по умолчанию), или ‘T’ для вывода текста над кривой. Если массив xdat не указан, то используется массив со значениями равно распределенными вдоль оси x. Если массив zdat не указан, то используется zdat[i] = zval. См. раздел Text – пример использования, для примеров кода и графика.
size=-2
]Выводит строку text как заголовок (сверху рисунка). Может использоваться в любом месте (даже внутри subplot).
x y
'fname' [n=0
'fnt'='' size=-1.4
]x y z
'fname' [n=0
'fnt'='' size=-1.4
]Выводит n-ую строку файла fname от точки {x,y,z} шрифтом fnt и размером size.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Эти команды рисуют объекты для "измерения" типа осей координат, цветовой таблицы (colorbar), сетку по осям, обрамляющий параллелепипед и подписи по осям координат. См. также Параметры осей координат.
adjust=off
]Рисует оси координат и метки на них (see section Параметры осей координат) в направлениях, указанных строкой dir. Если строка содержит символ ‘_’, то подписи меток отображаться не будут. Шрифт подписей определяется командой font. Метки будут "подогнаны" если adjust=on
(с помощью вызова adjust 'dir'
).
pos=0
]Рисует полосу соответствия цвета и числовых значений (colorbar) для цветовой схемы sch (используется текущая для sch=''
) с краю от графика. Параметр pos задает местоположение: ‘0’ - справа (по умолчанию), ‘1’ - слева, ‘2’ - сверху, ‘3’ - снизу. Если строка sch содержит ‘<>^_’, то параметр pos определяется как: pos=0
для ‘>’ (справа), pos=1
для ‘<’ (слева), pos=2
для ‘^’ (сверху), pos=3
для ‘_’ (снизу). Если строка содержит ‘A’, то используются абсолютные координаты (относительно рисунка). См. раздел Dens – пример использования, для примеров кода и графика.
pos=0
]Аналогично предыдущему, но для цветовой схемы без сглаживания с заданными значениями vdat. См. раздел ContD – пример использования, для примеров кода и графика.
pos x y w h
Аналогично первому, но в произвольном месте графика {x, y} (полагаются в диапазоне [0,1]). Параметры w, h задают относительную ширину и высоту colorbar.
Рисует линии сетки в направлениях перпендикулярным dir. Шаг сетки такой же как у меток осей координат. Стиль линий задается параметром pen (по умолчанию – сплошная темно синяя линия ‘B-’).
ticks=on
]Рисует ограничивающий параллелепипед цветом ’stl’. При ticks=on
рисуются метки в соответствии с текущими настройками осей координат axis.
pos=0 size=-1.4 shift=0
]pos=0 size=-1.4 shift=0
]pos=0 size=-1.4 shift=0
]pos=0 size=-1.4 shift=0
]Выводит подпись text для x-,y-,z-,t-оси (где ‘t’ – “тернарная” ось t=1-x-y). Параметр pos задает положение подписи: при pos=0 – по центру оси, при pos>0 – около максимальных значений, при pos<0 – около минимальных значений. Параметр size задает размер шрифта (по умолчанию в 1.4 раза больше чем у меток). See section Вывод текста.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Эти команды обеспечивают рисование легенды графика (полезно для 1D графики). Запись в легенде состоит из двух строк: одна для стиля линии и маркеров, другая с текстом описания (с включенным разбором TeX-их команд), накапливаемые во внутренние массивы с помощью команды addlegend или опции legend. Положение легенды можно задать автоматически или вручную. Параметры font и size задают стиль и размер шрифта. Параметр llen задает относительную ширину примера линии. Ели стиль линии пустой, то соответствующий текст печатается без отступа. Если строка font содержит символ ‘A’, то координаты легенды считаются относительно картинки (а не текущего subplot). См. раздел Legend – пример использования, для примеров кода и графика.
pos=3
'fnt'='rL' size=-1 llen=0.1
]Рисует легенду из накопленных записей шрифтом fnt размером size. Параметр pos задает положение легенды: ‘0’ – в нижнем левом углу, ‘1’ – нижнем правом углу, ‘2’ – верхнем левом углу, ‘3’ – верхнем правом углу (по умолчанию).
x y
['fnt'='rL' size=-1 llen=0.1
]Рисует легенду из накопленных записей шрифтом font размером size. Положение легенды задается параметрами x, y, которые полагаются нормированными в диапазоне [0,1].
Добавляет описание text кривой со стилем stl (see section Стиль линий) во внутренний массив записей легенды. Максимальное число записей 100.
Очищает внутренний массив записей легенды.
val
Включает/выключает рисование прямоугольника вокруг легенды. По умолчанию (=on
) прямоугольник рисуется.
val
Задает число маркеров в легенде. По умолчанию используется 1 маркер.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Эти команды строят графики для одномерных (1D) массивов. Одномерными считаются массивы, зависящие только от одного параметра (индекса) подобно кривой в параметрической форме {x(i),y(i),z(i)}, i=1...n. Есть 5 основных типов 1D графиков: линия (plot), линия с заполнением (area), ступеньки (step), прямоугольники (bars, barh) и вертикальные линии (stem). Все эти типы графиков имеют похожий интерфейс. Есть версии для рисования в пространстве и на плоскости. В последнем случае имеется возможность использования только одного массива. Стиль линии и маркеров указывается строковой переменной. Если она равна ''
. Кроме того, есть еще несколько типов графиков для одномерных массивов, имеющих другой интерфейс и вид: поверхность вращения кривой (torus), диаграмма (chart), размер ошибки (error), маркеры переменного размера (mark), трубками (tube) и т.д. См. раздел Пример графиков 1D данных, для примеров кода и графика.
График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате должен быть одинаков для всех массивов xdat.nx=ydat.nx=zdat.nx
. Если массив xdat не указан, то используется массив со значениями равно распределенными вдоль оси x. Если массив zdat не указан, то используется zdat[i] = zval. Строка stl задает цвет и стиль линии и маркеров (see section Стиль линий). По умолчанию (stl=''
) рисуется сплошная линия с текущим цветом из палитры.
zval=nan
]zval=nan
]Рисует ломанную линию между точками {x[i], y[i], z[i]}. См. также area, step, stem, tube, mark, error, belt, tens. См. раздел Plot – пример использования, для примеров кода и графика.
r=-1
]Рисует radar chart, представляющий собой ломанную с вершинами на радиальных линиях (типа ломанной в полярных координатах). График рисуется для каждой строки если один из массивов матрица. Параметр r задает дополнительный сдвиг данных (т.е. используется a+r вместо a). Если r<0
, то r=max(0, -min(a)
. Если stl содержит символ ‘#’, то также рисуется "сетка" (радиальные линии и круг для r). См. также plot. См. раздел Radar – пример использования, для примеров кода и графика.
zval=nan
]zval=nan
]Рисует ломанную линию по точкам {x[i], y[i], z[i]} с цветом, определяемым массивом c[i] (типа графика натяжений). См. также plot, mesh, fall. См. раздел Tens – пример использования, для примеров кода и графика.
zval=nan
]zval=nan
]Рисует ломанную линию по точками {xdat[i], ydat[i], zdat[i]} и закрашивает ее вниз до плоскости осей координат. Можно использовать градиентное закрашивание если число указанных цветов в stl равно удвоенному числу кривых для построения. Если строка содержит символ ‘a’, то линии рисуются одна поверх другой (с суммированием) – того же эффекта можно достичь вызовом cumsum ydat 'y'
перед построением графика. См. также plot, bars, stem, region. См. раздел Area – пример использования, для примеров кода и графика.
inside=off
]inside=off
]Закрашивает область между 2 кривыми {xdat[i], fdat[i]} и {xdat[i], gdat[i]}. При inside=off
закрашивается только область y1<y<y2, в противном случае также будет закращена область y2<y<y1. Можно использовать градиентное закрашивание если число указанных цветов stl равно удвоенному числу кривых для построения. См. также area, bars, stem. См. раздел Region – пример использования, для примеров кода и графика.
zval=nan
]zval=nan
]Рисует вертикальные линии из точек {xdat[i], ydat[i], zdat[i]} до плоскости осей координат. См. также area, bars, plot, mark. См. раздел Stem – пример использования, для примеров кода и графика.
zval=nan
]zval=nan
]Рисует вертикальные полосы (прямоугольники) из точек {xdat[i], ydat[i], zdat[i]} до плоскости осей координат. Если строка stl содержит символ ‘a’, то линии рисуются одна поверх другой. Если строка содержит символ ‘f’, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также barh, area, stem, chart. См. раздел Bars – пример использования, для примеров кода и графика.
zval=nan
]zval=nan
]Рисует горизонтальные полосы (прямоугольники) из точек {xdat[i], ydat[i]} до плоскости оси y. Если массив ydat не указан, то используется массив со значениями равно распределенными вдоль оси y. Если строка stl содержит символ ‘a’, то линии рисуются одна поверх другой. Если строка содержит символ ‘f’, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также bars. См. раздел Barh – пример использования, для примеров кода и графика.
Рисует цветные полосы (пояса) для массива данных adat. Число полос равно числу строк adat (равно a.ny). Цвет полос поочередно меняется из цветов указанных в col или в палитре (если col=''
). Пробел в цветах соответствует прозрачному "цвету", т.е. соответствующая полоса не рисуется. Ширина полосы пропорциональна значению элемента в adat. График строится только для массивов не содержащих отрицательных значений. Если строка col содержит ‘#’, то рисуется также черная граница полос. График выглядит лучше в 3d (после вращения системы координат) и/или в полярной системе координат (становится Pie chart). См. раздел Chart – пример использования, для примеров кода и графика.
zval=nan
]zval=nan
]Рисует ступеньки для точек массива {xdat[i], ydat[i], zdat[i]}. См. также plot, stem, tile, boxs. См. раздел Step – пример использования, для примеров кода и графика.
Рисует поверхность вращения кривой {rdat[i], zdat[i], zdat[i]} относительно оси axialdir. Если массив rdat не указан, то используется массив со значениями равно распределенными вдоль оси x. См. также plot, axial. См. раздел Torus – пример использования, для примеров кода и графика.
zval=nan
]rval
['stl'='' zval=nan
]zval=nan
]rval
['stl'='' zval=nan
]rval
['stl'='']Рисует трубу радиуса rdat[i] (or rval) вдоль кривой между точками {xdat[i], ydat[i], zdat[i]}. См. также plot. См. раздел Tube – пример использования, для примеров кода и графика.
zval=nan
]zval=nan
]Рисует маркеры размером rdat[i]*marksize
в точках {xdat[i], ydat[i], zdat[i]}. Для рисования маркеров одинакового размера можно использовать функцию plot
с невидимой линией (со стилем содержащим ‘ ’). См. также plot, textmark, stem, error. См. раздел Mark – пример использования, для примеров кода и графика.
zval=nan
]zval=nan
]zval=nan
]Рисует текст txt как маркер с размером пропорциональным rdat[i]*marksize
в точках {xdat[i], ydat[i], zdat[i]}. Если массив rdat не указан, то полагается rdat[i] = 1. См. также plot, mark, stem. См. раздел TextMark – пример использования, для примеров кода и графика.
zval=nan
]zval=nan
]zval=nan
]Рисует размер ошибки {xerr[i], yerr[i]} в точках {xdat[i], ydat[i]} на плоскости z = zval. Такой график полезен для отображения ошибки эксперимента, вычислений и пр. См. также plot. См. раздел Error – пример использования, для примеров кода и графика.
zval=nan
]zval=nan
]Рисует boxplot (называемый также как box-and-whisker diagram или как "ящик с усами") в точках xdat[i] на плоскости z = zval. Это график, компактно изображающий распределение вероятностей adat[i,j] (минимум, нижний квартиль (Q1), медиана (Q2), верхний квартиль (Q3) и максимум) вдоль второго (j-го) направления. См. также plot, error, bars. См. раздел BoxPlot – пример использования, для примеров кода и графика.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Эти команды строят графики для двумерных (2D) массивов. Двумерными считаются массивы, зависящие только от двух параметров (индексов) подобно матрице f(x_i,y_j), i=1...n, j=1...m. Есть несколько основных типов 2D графиков: сплошная поверхность (surf), сетчатая поверхность (mesh), поверхность из ящиков (boxs), поверхность из плиток (tile), водопад (fall), ленточки (belt), график плотности (dens), линии уровня (cont), линии уровня с заполнением (contf) и результат их вращения (axial). В функциях cont, contf и axial значения уровней можно задавать автоматически и вручную. Можно также нарисовать сетку (grid) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданной поверхности. См. раздел Пример графиков 1D данных, для примеров кода и графика.
Строка sch задает цветовую схему (see section Цветовая схема. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов xdat, ydat, zdat должны быть одинаковы xdat.nx=zdat.nx && ydat.nx=zdat.ny
или xdat.nx=ydat.nx=zdat.nx && xdat.ny=ydat.ny=zdat.ny
. Массивы xdat и ydat могут быть векторами (не матрицами как zdat). Если массивы xdat, ydat не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y. График строится для каждого z среза данных.
Рисует параметрически заданную поверхность {xdat[i,j], ydat[i,j], zdat[i,j]}. Если sch содержит ‘#’, то на поверхности рисуется сетка. См. также mesh, dens, belt, tile, boxs, surfc, surfa. См. раздел Surf – пример использования, для примеров кода и графика.
Рисует сетчатую поверхность, заданную параметрически {xdat[i,j], ydat[i,j], zdat[i,j]}. См. также surf, fall, meshnum, cont, tens. См. раздел Mesh – пример использования, для примеров кода и графика.
Рисует водопад для параметрически заданной поверхности {xdat[i,j], ydat[i,j], zdat[i,j]}. График удобен для построения нескольких кривых, сдвинутых вглубь друг относительно друга. Если sch содержит ‘x’, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). См. также belt, mesh, tens, meshnum. См. раздел Fall – пример использования, для примеров кода и графика.
Рисует ленточки для параметрически заданной поверхности {xdat[i,j], ydat[i,j], zdat[i,j]}. Если sch содержит ‘x’, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). См. также fall, surf, plot, meshnum. См. раздел Belt – пример использования, для примеров кода и графика.
Рисует вертикальные ящики для параметрически заданной поверхности {xdat[i,j], ydat[i,j], zdat[i,j]}. См. также surf, dens, tile, step. См. раздел Boxs – пример использования, для примеров кода и графика.
Рисует плитки для параметрически заданной поверхности {xdat[i,j], ydat[i,j], zdat[i,j]}. График может использоваться как 3d обобщение step. См. также surf, boxs, step, tiles. См. раздел Tile – пример использования, для примеров кода и графика.
zval=nan
]zval=nan
]Рисует график плотности для параметрически заданной поверхности {xdat[i,j], ydat[i,j], zdat[i,j]} при z = zVal. Если sch содержит ‘#’, то рисуется сетка. См. также surf, cont, contf, boxs, tile, dens[xyz]
. См. раздел Dens – пример использования, для примеров кода и графика.
zval=nan
]zval=nan
]Рисует линии уровня для параметрически заданной поверхности {xdat[i,j], ydat[i,j], zdat[i,j]} при z = zval (или при z=vdat[k] если zval==nan
). Линии уровня рисуются для z=vdat[k]. Если sch содержит ‘#’, то рисуется сетка. Если sch содержит ‘t’ или ‘T’, то значения vdat[k] будут выведены вдоль контуров над (или под) кривой. См. также dens, contf, contd, axial, cont[xyz]
. См. раздел Cont – пример использования, для примеров кода и графика.
num=7 zval=nan
]num=7 zval=nan
]Как предыдущий с вектором v из num элементов равно распределенных в интервале цветовой шкалы (см., caxis).
zval=nan
]zval=nan
]Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {xdat[i,j], ydat[i,j], zdat[i,j]} при z = zval (или при z=v[k] если zval=nan
). Линии уровня рисуются для z=vdat[k]. Если sch содержит ‘#’, то рисуется сетка. См. также dens, cont, contd, contf[xyz]
. См. раздел ContF – пример использования, для примеров кода и графика.
num=7 zval=nan
]num=7 zval=nan
]Как предыдущий с вектором v из num элементов равно распределенных в интервале цветовой шкалы (см., caxis).
zval=nan
]zval=nan
]Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {xdat[i,j], ydat[i,j], zdat[i,j]} при z = zval (или при z=v[k] если zval==nan
) цветами заданными явно. Линии уровня рисуются для z=vdat[k]. Строка sch задает цвет контуров: цвет k-го контура определяется символом sch[k%strlen(sch)]
. См. также dens, cont, contf, cont[xyz]
. См. раздел ContD – пример использования, для примеров кода и графика.
num=7 zval=nan
]num=7 zval=nan
]Как предыдущий с вектором v из num элементов равно распределенных в интервале цветовой шкалы (см., caxis).
Рисует поверхность вращения линии уровня для параметрически заданной поверхности {xdat[i,j], ydat[i,j], zdat[i,j]}. Линии уровня рисуются для zdat[i,j]=vdat[k]. Если sch содержит ‘#’, то рисуется сетчатая поверхность. Если строка содержит символы ‘x’, ‘y’ или ‘z’, то ось вращения устанавливается в указанное направление (по умолчанию вдоль оси axialdir). См. также cont, contf, torus, surf3. См. раздел Axial – пример использования, для примеров кода и графика.
num=3
]num=3
]Как предыдущий с вектором v из num элементов равно распределенных в интервале цветовой шкалы (см., caxis).
num=5 zval=nan
]num=5 zval=nan
]num=5
]Рисует линии градиента скалярного поля pdat заданного параметрически {xdat[i,j], ydat[i,j]} или {xdat[i,j,k], ydat[i,j,k], zdat[i,j,k]}. Число линий пропорционально num. Линии рисуются только с границ интервала при num<0. См. также dens, cont, dens3, cont3, flow. См. раздел Grad – пример использования, для примеров кода и графика.
zval=nan
]zval=nan
]Рисует плоскую сету для параметрически заданной поверхности {xdat[i,j], ydat[i,j], zdat[i,j]} при z = zval. См. также dens, cont, contf.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Эти функции строят графики для трехмерных (3D) массивов. Трехмерными считаются массивы, зависящие от трех параметров (индексов) подобно матрице f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l. Есть 5 основных типов 3D графиков: поверхность постоянного уровня (surf3), график плотности на срезе (dens3), линии уровня на срезе (cont3), закрашенные контуры уровня на срезе (contf3) и график объемной прозрачности типа облака (cloud). В функциях cont3, contf3 и surf3 значения уровней можно задавать автоматически и вручную. Можно также нарисовать на срезе сетку (grid3) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. См. раздел Пример графиков 3D данных, для примеров кода и графика.
Строка sch задает цветовую схему (see section Цветовая схема). Предыдущая цветовая схема используется по умолчанию. Массивы x, y, z могут быть векторами (не 3d массивами как a). Если массивы xdat, ydat, zdat не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y, z.
val
['sch'='']val
['sch'='']Рисует поверхность уровня для 3d массива, заданного параметрически adat[i,j,k](xdat[i,j,k], ydat[i,j,k], zdat[i,j,k]) при adat(x,y,z)=val. Если sch содержит ‘#’, то рисуется сетчатая поверхность. См. также cloud, dens3, surf3c, surf3a, axial. См. раздел Surf3 – пример использования, для примеров кода и графика.
num=5
]num=5
]Рисует num поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. caxis).
sval=-1
'sch'='']sval=-1
'sch'='']Рисует график плотности для 3d массива, заданного параметрически adat[i,j,k](xdat[i,j,k], ydat[i,j,k], zdat[i,j,k]). График рисуется на срезе sval в направлении dir={‘x’, ‘y’, ‘z’}. Если stl содержит ‘#’, то на срезе рисуется сетка. См. также cont3, contf3, dens, grid3. См. раздел Dens3 – пример использования, для примеров кода и графика.
Рисует графики плотности на всех центральных срезах 3d данных.
sval=-1
'sch'='']sval=-1
'sch'='']Рисует линии уровня для 3d массива, заданного параметрически adat[i,j,k](xdat[i,j,k], ydat[i,j,k], zdat[i,j,k]). Линии рисуются для значений из массива v на срезе sval в направлении dir={‘x’, ‘y’, ‘z’}. Если stl содержит ‘#’, то на срезе рисуется сетка. Если sch содержит ‘t’ или ‘T’, то значения vdat[k] будут выведены вдоль контуров над (или под) кривой. См. также dens3, contf3, cont, grid3. См. раздел Cont3 – пример использования, для примеров кода и графика.
sval=-1
'sch'='' num=7
]sval=-1
'sch'='' num=7
]Как предыдущий с вектором v из num элементов равно распределенных в интервале цветовой шкалы (см., caxis).
num=7
]num=7
]Рисует линии уровня на всех центральных срезах 3d данных.
sval=-1
'sch'='']sval=-1
'sch'='']Рисует закрашенные линии (контуры) уровня для 3d массива, заданного параметрически adat[i,j,k](xdat[i,j,k], ydat[i,j,k], zdat[i,j,k]). Линии рисуются для значений из массива v на срезе sval в направлении dir={‘x’, ‘y’, ‘z’}. Если stl содержит ‘#’, то на срезе рисуется сетка. См. также dens3, cont3, contf, grid3. См. раздел ContF3 – пример использования, для примеров кода и графика.
sval=-1
'sch'='' num=7
]sval=-1
'sch'='' num=7
]Как предыдущий с вектором v из num элементов равно распределенных в интервале цветовой шкалы (см., caxis).
num=7
]num=7
]Рисует закрашенные линии (контуры) уровня на всех центральных срезах 3d данных.
sval=-1
'sch'='']sval=-1
'sch'='']Рисует сетку для 3d массива, заданного параметрически adat[i,j,k](xdat[i,j,k], ydat[i,j,k], zdat[i,j,k]). График рисуется на срезе sval в направлении dir={‘x’, ‘y’, ‘z’}. См. также cont3, contf3, dens3, grid2.
Рисует сетку на всех центральных срезах 3d данных.
Рисует облачный график для 3d массива, заданного параметрически adat[i,j,k](xdat[i,j,k], ydat[i,j,k], zdat[i,j,k]). График состоит из кубиков с цветом и прозрачностью пропорциональной значениям adat. Результат похож на облако – малые значения прозрачны, а большие нет. Число кубиков зависит от meshnum. Параметр alpha меняет общую прозрачность графика. См. также surf3. См. раздел Cloud – пример использования, для примеров кода и графика.
rval
['sch'='' flag=0 num=3
]Рисует поверхность уровня для 3d массива adat при постоянном значении adat=val. Это специальный тип графика для adat заданного в сопровождающей системе координат вдоль кривой tr с ортами g1, g2 и с поперечным размером rval. Переменная flag – битовый флаг: ‘0x1’ - рисовать в сопровождающих (не лабораторных) координатах; ‘0x2’ - рисовать проекцию на плоскость \rho-z; ‘0x4’ - рисовать нормированное в каждом сечении поле. Размеры массивов по 1-му индексу tr, g1, g2 должны быть nx>2. Размеры массивов по 2-му индексу tr, g1, g2 и размер по 3-му индексу массива adat должны быть одинаковы. См. также surf3.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Эти команды строят графики для двух связанных массивов. Есть несколько основных типов 3D графиков: поверхность и поверхность уровня с окраской по второму массиву (surfc, surf3c), поверхность и поверхность уровня с прозрачностью по второму массиву (surfa, surf3a), плитки переменного размера (tiles), диаграмма точечного отображения (map), STFA диаграмма (stfa). В командах surf3a и surf3c значения уровней можно задавать автоматически и вручную. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива.
Строка sch задает цветовую схему (see section Цветовая схема). Предыдущая цветовая схема используется по умолчанию. Массивы x, y, z могут быть векторами (не 3d массивами как a). Если массивы xdat, ydat, zdat не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y, z.
Рисует параметрически заданную поверхность {xdat[i,j], ydat[i,j], zdat[i,j]} с цветом, заданным массивом cdat[i,j]. Если sch содержит ‘#’, то на поверхности рисуется сетка. См. также surf, surfa, surf3c. См. раздел SurfC – пример использования, для примеров кода и графика.
val
['sch'='']val
['sch'='']Рисует поверхность уровня для 3d массива, заданного параметрически adat[i,j,k](xdat[i,j,k], ydat[i,j,k], zdat[i,j,k]) при a(x,y,z)=val. Аналогично surf3, но цвет задается массивом cdat. Если sch содержит ‘#’, то рисуется сетчатая поверхность. См. также surf3, surfc, surf3a. См. раздел Surf3C – пример использования, для примеров кода и графика.
num=5
]num=5
]Рисует num поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. caxis).
Рисует параметрически заданную поверхность {xdat[i,j], ydat[i,j], zdat[i,j]} с прозрачностью, заданным массивом cdat[i,j]. Если sch содержит ‘#’, то на поверхности рисуется сетка. См. также surf, surfc, surf3a. См. раздел SurfA – пример использования, для примеров кода и графика.
val
['sch'='']val
['sch'='']Рисует поверхность уровня для 3d массива, заданного параметрически adat[i,j,k](xdat[i,j,k], ydat[i,j,k], zdat[i,j,k]) при a(x,y,z)=val. Аналогично surf3, но прозрачность задается массивом cdat. Если sch содержит ‘#’, то рисуется сетчатая поверхность. См. также surf3, surfa, surf3c. См. раздел Surf3A – пример использования, для примеров кода и графика.
num=5
]num=5
]Рисует num поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. caxis).
Рисует плитки для параметрически заданной поверхности {xdat[i,j], ydat[i,j], zdat[i,j]}. Аналогично tile, но размер плиток задается массивов rdat. Это создает эффект "прозрачности" при экспорте в файлы EPS. См. также surfa, tile. См. раздел TileS – пример использования, для примеров кода и графика.
pnts=on
]pnts=on
]Визуализирует точечное отображение для матриц {udat, vdat } параметрически зависящих от координат xdat, ydat. Исходное положение ячейки задает ее цвет. Высота пропорциональна якобиану Jacobian(udat,vdat). График является аналогом диаграммы Арнольда. Если pnts=off
, то рисуются грани, иначе цветные точки рисуются в узлах матриц (полезно для "запутанного" отображения). См. раздел Map – пример использования, для примеров кода и графика.
dn
['sch'='' pnts=on
]dn
['sch'='' pnts=on
]Рисует спектрограмму комплексного массива re+i*im
для Фурье размером dn точек. Параметр dn – любое четное число. Например в 1D случае, результатом будет график плотности от массива res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn размером {int(nx/dn), dn, ny}. Массивы re, im параметрически зависят от координат xdat, ydat. См. раздел STFA – пример использования, для примеров кода и графика.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько типов графиков: просто векторное поле (vect), вектора вдоль траектории (traj), векторное поле каплями (dew), нити тока (flow), трубки тока (pipe). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива.
Строка sch задает цветовую схему (see section Цветовая схема). Предыдущая цветовая схема используется по умолчанию. Все размеры массивов ax и ay должны быть одинаковы. Младшие размерности массивов x, y и ax должны быть одинаковы. Массивы x и y могут быть векторами (не матрицами как ax). График строится для каждого z среза ax, ay для 2D случаев.
zval=nan len=0
]len=0
]Рисует вектора {udat, vdat, wdat} вдоль кривой {xdat, ydat, zdat}. Длина векторов пропорциональна \sqrtudat^2+vdat^2+wdat^2. Строка pen задает цвет (see section Стиль линий). По умолчанию (pen=''
). Параметр len задает фактор длины векторов (если не нуль) или выбирать длину пропорционально расстоянию между точками кривой (если len=0). См. также vect. См. раздел Traj – пример использования, для примеров кода и графика.
zval=nan flag=0
]zval=nan flag=0
]Рисует векторное поле {udat, vdat} параметрически зависящее от координат xdat, ydat на плоскости при z=zval. Длина и цвет векторов пропорциональна \sqrtax^2+ay^2. Число рисуемых векторов зависит от meshnum. Параметр flag побитовый флаг для настройки вид векторов: 1
– двуцветный вектор, 2
– одинаковая длина векторов, 4
– рисует стрелку в точку сетки, 8
– рисует стрелку с серединой в точке сетки, 16
– рисует штрихи вместо стрелок. См. также flow, dew, vectc. См. раздел Vect – пример использования, для примеров кода и графика.
flag=0
]flag=0
]Это 3D версия графика. Здесь массивы udat, vdat, wdat должны быть 3d массивами, а длина и цвет пропорциональны \sqrtudat^2+vdat^2+wdat^2. См. раздел Vect 3D – пример использования, для примеров кода и графика.
zval=nan
]zval=nan
]Аналогично vect c flag=2+16=18
. См. раздел VectC – пример использования, для примеров кода и графика.
Это 3D версия графика. Здесь массивы udat, vdat, wdat должны быть 3d массивами, а длина и цвет пропорциональны \sqrtudat^2+vdat^2+wdat^2. См. раздел VectC 3D – пример использования, для примеров кода и графика.
zval=nan
]zval=nan
]Аналогично vect c flag=1+16=17
. См. раздел VectL – пример использования, для примеров кода и графика.
Это 3D версия графика. Здесь массивы udat, vdat, wdat должны быть 3d массивами, а длина и цвет пропорциональны \sqrtudat^2+vdat^2+wdat^2. См. раздел VectL 3D – пример использования, для примеров кода и графика.
zval=nan
]zval=nan
]Рисует капли для векторного поля {udat, vdat}, параметрически зависящего от координат xdat, ydat при z=zval. Замечу, что график требует много памяти и процессорного времени для своего создания! Цвет капель пропорционален \sqrtax^2+ay^2. Число капель определяется meshnum. См. также vect. См. раздел Dew – пример использования, для примеров кода и графика.
num=5 zval=nan
]num=5 zval=nan
]Рисует нити тока для векторного поля {udat, vdat}, параметрически зависящего от координат xdat, ydat на плоскости при z = zval. Число нитей пропорционально num. При num>0 нитей могут стартовать и изнутри сетки, в противном случае только с краев. Цвет нитей пропорционален \sqrtudat^2+vdat^2. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). См. также pipe, vect. См. раздел Flow – пример использования, для примеров кода и графика.
num=3
]num=3
]Это 3D версия графика. Здесь массивы udat, vdat, wdat должны быть 3d массивами, а цвет пропорционален \sqrtudat^2+vdat^2+wdat^2. См. раздел Flow 3D – пример использования, для примеров кода и графика.
x0 y0
udat vdat ['sch'='' zval=nan
]x0 y0
xdat ydat udat vdat ['sch'='' zval=nan
]Рисует нить тока из точки {x0, y0} для векторного поля {udat, vdat}, параметрически зависящего от координат xdat, ydat на плоскости при z = zval. Цвет нити пропорционален \sqrtudat^2+vdat^2. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника).
x0 y0 z0
udat vdat wdat ['sch'='']x0 y0 z0
xdat ydat zdat udat vdat wdat ['sch'='']Это 3D версия графика. Здесь массивы udat, vdat, wdat должны быть 3d массивами, а цвет пропорционален \sqrtudat^2+vdat^2+wdat^2.
r0=0.05 num=5 zval=nan
]r0=0.05 num=5 zval=nan
]Рисует трубки тока для векторного поля {udat, vdat}, параметрически зависящего от координат xdat, ydat на плоскости при z = zval. Число трубок пропорционально num. При num>0 нитей могут стартовать и изнутри сетки, в противном случае только с краев. Цвет и радиус трубок пропорционален \sqrtudat^2+vdat^2. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). Параметр r0 задает радиус трубок. При r0<0 радиус трубок обратно пропорционален их амплитуде. См. также flow, vect. См. раздел Pipe – пример использования, для примеров кода и графика.
r0=0.05 num=3
]r0=0.05 num=3
]Это 3D версия графика. Здесь массивы udat, vdat, wdat должны быть 3d массивами, а цвет пропорционален \sqrtudat^2+vdat^2+wdat^2. См. раздел Pipe 3D – пример использования, для примеров кода и графика.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Это команды, не относящиеся к какой-то специальной категории. Сюда входят функции построения графиков по текстовым формулам (fplot, fsurf), рисования поверхностей из треугольников (triplot), произвольных точек в пространстве (dots) и реконструкции по ним поверхности (crust), графики плотности и линии уровня на плоскостях, перпендикулярных осям x, y или z (dens[xyz], cont[xyz], contf[xyz]). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. Строка sch задает цветовую схему (see section Цветовая схема). Предыдущая цветовая схема используется по умолчанию.
val=nan
]val=nan
]val=nan
]Рисуют график плотности на x, y или z плоскостях. Если dat – 3d массив, то выполняется интерполяция к заданному срезу val. Функции полезны для создания проекций 3D массивов на оси координат. См. также cont[xyz], contf[xyz]
, dens. См. раздел Dens projection – пример использования, для примеров кода и графика.
val=nan num=7
]val=nan num=7
]val=nan num=7
]Рисуют линии уровня на x, y или z плоскостях. Если dat – 3d массив, то выполняется интерполяция к заданному срезу val. Функции полезны для создания проекций 3D массивов на оси координат. См. также dens[xyz], contf[xyz]
, cont. См. раздел Cont projection – пример использования, для примеров кода и графика.
val=nan num=7
]val=nan num=7
]val=nan num=7
]Рисуют закрашенные контуры уровня на x, y или z плоскостях. Если dat – 3d массив, то выполняется интерполяция к заданному срезу val. Функции полезны для создания проекций 3D массивов на оси координат. См. также dens[xyz], cont[xyz]
, contf.
Рисует произвольно расположенные точки {xdat[i], ydat[i], zdat[i]}. Если определен массив adat[i], то он задает прозрачность точек. См. также crust, mark, plot. См. раздел Dots – пример использования, для примеров кода и графика.
Реконструирует и рисует поверхность по произвольно расположенным точкам {xdat[i], ydat[i], zdat[i]}. Если строка содержит ‘#’, то рисуется сетчатая поверхность. См. также dots, triplot. См. раздел Crust – пример использования, для примеров кода и графика.
zval=nan
]Рисует поверхность из треугольников. Вершины треугольников задаются индексами idat в массиве точек {xdat[i], ydat[i], zdat[i]}. Если строка содержит ‘#’, то рисуется сетчатая поверхность. Размер по 1-му индексу массива idat должен быть 3 или больше. Массивы xdat, ydat, zdat должны иметь одинаковые размеры. Массив cdat задает цвет треугольников (если idat.ny=cdat.nx) или цвет вершин (если xdat.nx=cdat.nx). См. также dots, crust, quadplot, tricont.
zval=nan
]zval=nan
]num=7 zval=nan
]Рисует линии уровня поверхности из треугольников при z = zval (или для z=vdat[k] если zval==NAN
). Вершины треугольников задаются индексами idat в массиве точек {xdat[i], ydat[i], zdat[i]}. Размер по 1-му индексу массива idat должен быть 3 или больше. Массивы xdat, ydat, zdat должны иметь одинаковые размеры. Массив cdat (если указан) задает цвет треугольников (если idat.ny=cdat.nx) или цвет вершин (если xdat.nx=cdat.nx). См. также triplot, cont.
zval=nan
]Рисует поверхность из четырехугольников. Вершины треугольников задаются индексами idat в массиве точек {xdat[i], ydat[i], zdat[i]}. Если строка содержит ‘#’, то рисуется сетчатая поверхность. Размер по 1-му индексу массива idat должен быть 4 или больше. Массивы xdat, ydat, zdat должны иметь одинаковые размеры. Массив cdat задает цвет четырехугольников (если idat.ny=cdat.nx) или цвет вершин (если xdat.nx=cdat.nx). См. также triplot.
zval=nan num=100
]Рисует функцию ‘y(x)’ в плоскости z=zval с координатой ‘x’ в диапазоне x-оси координат. Параметр num задает минимальное число точек по координате для графика. См. также plot.
num=100
]Рисует параметрическую кривую {‘x(t)’, ‘y(t)’, ‘z(t)’}, где координата ‘t’ меняется в диапазоне [0, 1]. Параметр num задает минимальное число точек по координате для графика. См. также plot.
num=100
]Рисует поверхность ‘z(x,y)’ с координатами ‘x’, ‘y’ в диапазоне x-,y-осей координат. Параметр num задает минимальное число точек по координатам для графика. См. также surf.
num=100
]Рисует параметрическую поверхность {‘x(u,v)’, ‘y(u,v)’, ‘z(u,v)’}, где координаты ‘u’, ‘v’ меняются в диапазоне [0, 1]. Параметр num задает минимальное число точек по координатам для графика. См. также surf.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Эти команды подбирают параметры функций для наилучшей аппроксимации данных, т.е. минимизируют сумму \sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2. При этом аппроксимирующая функция ‘f’ может зависеть от одного аргумента ‘x’ (1D случай), от двух аргументов ‘x,y’ (2D случай) или от трех аргументов ‘x,y,z’ (3D случай). Функция ‘f’ также может зависеть от параметров. Список параметров задается строкой var (например, ‘abcd’). Обычно пользователь должен предоставить начальные значения параметров в переменной ini. Однако, при его отсутствии используются нулевые значения.
Команды fit и fits не рисуют полученные массивы. Они заполняют массив fit по формуле ‘f’ с найденными коэффициентами. При этом, координаты ‘x,y,z’ равно распределены в вдоль осей координат. Число точек в fit выбирается максимальным из размера массива fit и 100. Формулу с найденными коэффициентами можно вывести с помощью команды putsfit. См. раздел Fitting – пример использования, для примеров кода и графика.
Размерность массивов должны быть не меньше, чем число указанных массивов xdat, ydat, zdat. Также подбор коэффициентов будет осуществляться только вдоль указанных направлений (например, вдоль x и y если указаны только xdat и ydat). Если массив xdat не указан, то используется массив со значениями равно распределенными вдоль оси x.
"Подгоняют" формулу вдоль x-, y- и z-направлений для массива заданного параметрически a[i,j,k](x[i,j,k], y[i,j,k], z[i,j,k]) с весовыми коэффициентами sdat[i,j,k].
"Подгоняют" формулу вдоль x-, y- и z-направлений для массива заданного параметрически a[i,j,k](x[i,j,k], y[i,j,k], z[i,j,k]) с весовыми коэффициентами равными 1.
x y
['pre'='' 'fnt'='' size=-1
]Печатает последнюю подобранную формулу с найденными коэффициентами в точке {x, y}. Строка pre будет напечатана перед формулой. Все другие параметры такие же как в Вывод текста.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
nx=1 ny=1 nz=1
]Создает/пересоздает массив с именем dat данных указанного размера и заполняет его нулями. Ничего не делает при nx, ny, nz отрицательных или равных нулю.
num v1 [v2=nan]
Создает одномерный массив с именем dat размером num
и заполняет его равномерно в диапазоне [v1, v2]. Если v2=nan
, то используется v2=v1.
v1 ...
Создает массив с именем dat и заполняет его числовыми значениями аргументов v1 ...
. Команда может создавать 1d- и 2d-массивы. Для создания 2d-массивов требуется указать разделитель строк данных ‘|’. Размер массива будет [максимальное число чисел в строке * число строк]. Например, команда list 1 | 2 3
создаст массив [1 0; 2 3]. Отмечу, что максимальное число аргументов 1000.
Создает массив с именем dat и заполняет его числами из массивов d1 ...
. Команда может создавать 2d- и 3d-массивы (если аргументы 2d массивы). Младшие размерности всех массивов в аргументах должны быть равны размерности d1. Отмечу, что максимальное число аргументов 1000.
on_axis=on
]val
Создает массив с именем dat и копирует в него данные из массива dat2. При этом, если указан параметр eq, то данные будут изменены по формуле аналогично команде fill (для on_axis=on
) или modify (для on_axis=off
).
Устанавливает символьные обозначения для колонок данных. Строка должна содержать символы ’a’...’z’ один на колонку (без пробелов).
detail=off
]Выводит информацию о массиве (размер, максимальное/минимальное значение, моменты и пр.). При detail=off
показывается только краткая информация.
Выводит текст text как информацию (предупреждение).
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Заполняет значениями равно распределенными в диапазоне [v1, v2] в направлении dir={‘x’,‘y’,‘z’}.
Заполняет значениями вычисленными по формуле eq. Формула представляет собой произвольное выражение, зависящее от переменных ‘x’, ‘y’, ‘z’, ‘u’, ‘v’, ‘w’. Координаты ‘x’, ‘y’, ‘z’ полагаются меняющимися в диапазоне осей координат (в отличие от modify). Переменная ‘u’ – значения исходного массива, переменные ‘v’, ‘w’ – значения массивов vdat, wdat. Последние могут быть опущены.
dim=0
]Заполняет значениями вычисленными по формуле eq. Формула представляет собой произвольное выражение, зависящее от переменных ‘x’, ‘y’, ‘z’, ‘u’, ‘v’, ‘w’. Координаты ‘x’, ‘y’, ‘z’ полагаются меняющимися в диапазоне [0,1] (в отличие от fill). Переменная ‘u’ – значения исходного массива, переменные ‘v’, ‘w’ – значения массивов vdat, wdat. Последние могут быть опущены. Если указан dim>0, то изменяются только слои >=dim.
val [i=: j=: k=:]
Присваивает значения (под-)массива dat[i, j, k] = val. Индексы i, j, k равные ‘:’ задают значениия val для всего диапазона соответствующего направления(ий). Например, put dat val : 0 :
задает dat[i,0,j]=val для i=0...(dat.nx-1), j=0...(dat.nz-1).
i=: j=: k=:
]Копирует значения из массива vdat в диапазон значений массива dat. Индексы i, j, k равные ‘:’ задают диапазон изменения значений в соответствующих направление(ях). Младшие размерности массива vdat должны быть больше выбранного диапазона массива dat. Например, put dat v : 0 :
присвоит dat[i,0,j]=vdat.ny>dat.nz ? vdat[i,j] : vdat[i], где i=0...(dat.nx-1), j=0...(dat.nz-1) и условие vdat.nx>=dat.nx выполнено.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
mx [my=0 mz=0]
Изменяет размерность данных без изменения самого массива данных, так что результирующий массив mx*my*mz < nx*ny*nz. Если один из параметров my или mz ноль, то он будет выбран оптимальным образом. Например, если my=0, то будет my=nx*ny*nz/mx и mz=1.
n1 [n2=0]
Увеличивает размер данных путем вставки (|n1|+1) новых срезов после (для n1>0) или перед (для n1<0) существующими данными. Можно добавить сразу 2 размерности для 1d массива, используя второй параметр n2. Данные в новые срезы будут скопированы из существующих. Например, для n1>0 новый массив будет a_ij^new = a_i^old where j=0...n1. Соответственно, для n1<0 новый массив будет a_ij^new = a_j^old, где i=0...|n1|.
Транспонирует (меняет порядок размерностей) массив данных. Новый порядок размерностей задается строкой dim.
rx [ry=1 rz=1 sm=off]
Уменьшает размер данных путем удаления элементов с индексами не кратными rx, ry, rz соответственно. Параметр smooth задает использовать сглаживания (т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или нет (т.е. out[i]=a[j*r]).
n1 n2
'dir'Обрезает границы данных при i<n1 и i>n2 (при n2>0) или i>n[xyz]
-n2 (при n2<=0) вдоль направления dir.
Удаляет массив dat и освобождает использованную память. Может быть полезно для больших неиспользуемых массивов.
[pos=off num=0]
Удаляет num срезов вдоль направления dir с позиции pos.
[pos=off num=0]
Вставляет num срезов вдоль направления dir с позиции pos и заполняет их нулями.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Читает данные из текстового файла с разделителями символом пробела/табуляции с автоматическим определением размера массива. Двойной перевод строки начинает новый срез данных (по направлению z).
mx [my=1 mz=1]
Читает данные из текстового файла с заданными размерами. Ничего не делается если параметры mx, my или mz равны нулю или отрицательны.
dim=2
]Читает данные из текстового файла с размерами, указанными в первых dim числах файла. При этом переменная dim задает размерность (1d, 2d, 3d) данных.
v1 v2 [dv=1 slice=off]
Объединяет данные из нескольких текстовых файлов. Имена файлов определяются вызовом функции sprintf(fname,templ,val);
, где val меняется от v1 до v2 с шагом dv. Данные загружаются один за другим в один и тот же срез данных (при slice=off
) или срез-за-срезом (при slice=on
).
[slice=off]
Объединяет данные из нескольких текстовых файлов, чьи имена удовлетворяют шаблону templ (например, templ="t_*.dat"
). Данные загружаются один за другим в один и тот же срез данных (при slice=off
) или срез-за-срезом (при slice=on
).
Сохраняет массив данных в текстовый файл.
Читает массив с именем dname из HDF5 или HDF4 файла fname.
Сохраняет массив под именем dname в HDF5 или HDF4 файл fname.
v1=0 v2=1
]Читает данные из растрового файла. RGB значения пикселов преобразуются в число в диапазоне [v1, v2] используя цветовую схему sch (see section Цветовая схема).
v1=0 v2=0
]Сохраняет данные в растровый файл. Числовые значения, нормированные в диапазон [v1, v2], преобразуются в RGB значения пикселов, используя цветовую схему sch (see section Цветовая схема). Если v1>=v2, то значения v1, v2 определяются автоматически как минимальное и максимальное значение данных.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Возвращает в массиве данных res прямое произведение массивов (наподобие, res[i,j] = adat[i]*bdat[j] и т.д.).
norm=on
]norm=on
]norm=on
]Возвращает массив данных res, полученный в результате интерполяции исходного массива в точках других массивов (например, res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов idat, jdat, kdat должны совпадать. Координаты в idat, jdat, kdat полагаются нормированными в диапазон [0,1] (при norm=on
) или в диапазоны [0,nx], [0,ny], [0,nz] соответственно.
num v1 v2 [nsub=0]
num v1 v2 [nsub=0]
Возвращает распределение (гистограмму) res из num точек от значений массива dat в диапазоне [v1, v2]. Массив wdat задает веса элементов (все веса равны 1 если wdat не указан). Параметр nsub задает число дополнительных точек интерполяции (для сглаживания получившейся гистограммы).
Возвращает распределение (гистограмму) res от значений массива adat, параметрически зависящего от координат {xdat,ydat,zdat} в диапазоне осей координат. Массив adat играет роль веса точки. Число точек в результате res – максимум из размера res и 100.
Возвращает в массиве данных res момент (1d массив) данных dat вдоль направления dir. Строка how определяет тип момента. Момент определяется как res_k = \sum_ij how(x_i,y_j,z_k) dat_ij/ \sum_ij a_ij если dir=‘z’ и т.д. Координаты ‘x’, ‘y’, ‘z’ – индексы массива в диапазоне [0,1].
Возвращает в массиве данных res результат суммирования dat вдоль направления(ий) dir.
Возвращает в массиве данных res максимальное значение dat вдоль направления(ий) dir. Gets array which is the maximal data values in given direction or direction(s).
Возвращает в массиве данных res минимальное значение dat вдоль направления(ий) dir.
mx [my=1 mz=1]
Возвращает массив данных res размером mx, my, mz со значениями полученными интерполяцией значений массива dat.
xx [yy=: zz=:]
Возвращает в res подмассив массива данных dat с фиксированными значениями индексов с положительными значениями. Например, subdata a b : 2
выделяет третью строку (индексы начинаются с нуля), subdata a b 4 :
выделяет 5-ую колонку, subdata a b : : 3
выделяет 4-ый срез и т.д.
Возвращает массив ref диагональных элементов dat[i,i] (для 2D данных) или dat[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае возвращается сам массив данных dat. Размеры массива данных должен быть dat.ny, dat.nz >= dat.nx или dat.ny, dat.nz = 1.
Выполняет интегральное преобразование комплексных данных real, imag в выбранном направлении и возвращает модуль результата в res. Порядок и тип преобразований задается строкой type: первый символ для x-направления, второй для y-направления, третий для z-направления. Возможные символы: ‘f’ – прямое преобразование Фурье, ‘i’ – обратное преобразование Фурье, ‘s’ – синус преобразование, ‘c’ – косинус преобразование, ‘h’ – преобразование Ханкеля, ‘n’ или ‘ ’ – нет преобразования.
Аналогично предыдущему с заданными амплитудой ampl и фазой phase комплексных чисел.
dn
['dir'='x']Выполняет оконное преобразование Фурье длиной dn для комплексных данных real, imag и возвращает модуль результата в res. Например, для dir=‘x’ результат будет иметь размер {int(nx/dn), dn, ny} и будет равен res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn.
dz=0.1 k0=100
]Решает уравнение в частных производных du/dz = i*k0*ham(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy – псевдо-дифференциальные операторы. Параметры ini_re, ini_im задают начальное распределение поля. Координаты в уравнении и в решении полагаются в диапазоне осей координат. Замечу, что внутри этот диапазон увеличивается в 3/2 раза для уменьшения отражения от границ расчетного интервала. Параметр dz задает шаг по эволюционной координате z. В данный момент использован упрощенный алгоритм, когда все “смешанные” члена (типа ‘x*p’->x*d/dx) исключаются. Например, в 2D случае это функции типа ham = f(p,z) + g(x,z,u). При этом допускаются коммутирующие комбинации (типа ‘x*q’->x*d/dy). Переменная ‘u’ используется для обозначения амплитуды поля |u|. Это позволяет решать нелинейные задачи – например, нелинейное уравнение Шредингера ham='p^2+q^2-u^2'
. Также можно указать мнимую часть для поглощения (типа ham = 'p^2+i*x*(x>0)'
), но только если зависимость от ‘i’ линейная, т.е. ham = hre+i*him. См. раздел PDE – пример использования, для примеров кода и графика.
x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]
Решает систему геометрооптических уравнений dr/dt = d ham/dp, dp/dt = -d ham/dr. Это гамильтоновы уравнения для траектории частицы в 3D случае. Гамильтониан ham может зависеть от координат ‘x’, ‘y’, ‘z’, импульсов ‘p’=px, ‘q’=py, ‘v’=pz и времени ‘t’: ham = H(x,y,z,p,q,v,t). Начальная точка (при t=0
) задается переменными {x0, y0, z0, p0, q0, v0}. Параметры dt и tmax задают шаг и максимальное время интегрирования. Результат res – массив {x,y,z,p,q,v,t} с размером {7 * int(tmax/dt+1) }. См. раздел Beam tracing – пример использования, для примеров кода и графика.
r=1 k0=100
xx=0 yy=0]Решает уравнение в частных производных du/dt = i*k0*ham(p,q,x,y,|u|)[u] в сопровождающей системе координат, где p=-i/k0*d/dx, q=-i/k0*d/dy – псевдо-дифференциальные операторы. Параметры ini_re, ini_im задают начальное распределение поля. Параметр ray задает опорный луч для сопровождающей системы координат. Можно использовать луч найденный с помощью ray
. Опорный луч должен быть достаточно гладкий, чтобы система координат была однозначной и для исключения ошибок интегрирования. Если массивы xx и yy указаны, то в них записываются декартовы координаты для каждой точки найденного решения. См. также pde. См. раздел Beam tracing – пример использования, для примеров кода и графика.
Вычисляет якобиан преобразования {i,j,k} в {xdat,ydat,zdat}, где координаты {i,j,k} полагаются нормированными в интервал [0,1]. Якобиан находится по формуле det||dr_\alpha/d\xi_\beta||, где r={xdat,ydat,zdat} и \xi={i,j,k}. Все размерности всех массивов должны быть одинаковы. Данные должны быть трехмерными если указаны все 3 массива {xdat,ydat,zdat} или двумерными если только 2 массива {xdat,ydat}.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Эти команды изменяют данные вдоль заданного направления(ий) типа например дифференцирования, интегрирования и т.д. Направление указывается строкой dir, которая может содержать символы ‘x’, ‘y’ и/или ‘z’, вдоль которых изменения будут применены.
Суммирует с накоплением в выбранном направлении(ях).
Выполняет интегрирование (подобно суммированию с накоплением) в выбранном направлении(ях).
Выполняет дифференцирование в выбранном направлении(ях).
Выполняет дифференцирование данных dat, параметрически зависящих от координат, в направлении xdat с ydat, zdat=constant. Параметр zdat может быть опущен, что соответствует 2D случаю. Используются следующие формулы (2D случай): da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j), где a_i=da/di, a_j=da/dj обозначает дифференцирование вдоль 1-ой и 2-ой размерности. Похожие формулы используются и в 3D случае. Порядок аргументов можно менять – например, если данные a(i,j) зависят от координат {x(i,j), y(i,j)}, то обычная производная по ‘x’ будет равна diff a x y
, а обычная производная по ‘y’ будет равна diff a y x
.
Выполняет двойное дифференцирование (как в операторе Лапласа) в выбранном направлении(ях).
Выполняет синус преобразование в выбранном направлении(ях). Синус преобразование есть \sum a_i \sin(k i).
Выполняет косинус преобразование в выбранном направлении(ях). Синус преобразование есть \sum a_i \cos(k i).
Выполняет преобразование Ханкеля в выбранном направлении(ях). Преобразование Ханкеля есть \sum a_i J_0(k i).
Меняет местами левую и правую части данных в выбранном направлении(ях). Полезно для отображения результата FFT.
Сдвигает данные на num ячеек в выбранном направлении(ях). Соответствует замене индекса на i->(i+num)%n.
Отражает данные в выбранном направлении(ях). Соответствует замене индекса на i->n-i.
da=2*pi
]Удаляет скачки данных (например, скачки фазы после обратных тригонометрических функций) с периодом da в выбранном направлении(ях).
type
['dir'='xyz']Сглаживает данные в выбранном направлении(ях) методом type. Сейчас поддерживаются 4 метода: 0
ничего не делает, 1
линейное усреднение по 3 точкам, 2
линейное усреднение по 5 точкам, 3
квадратичное усреднение по 5 точкам.
Находит огибающую данных в выбранном направлении. Только одно направление может быть выбрано за раз.
v1 v2
['dir'='z' keep=on sym=off
]Нормирует данные срез-за-срезом в выбранном направлении dir в интервал [v1,v2]. Если sym=on
, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если keep=on
, то максимальное значение k-го среза ограничено величиной
\sqrt\sum a_ij(k)/\sum a_ij(0).
v1 v2 [sym=off dim=0]
Нормирует данные в интервал [v1,v2]. Если sym=on
, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Изменения применяются только к срезам >=dim.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Поэлементно умножает массив dat на dat2.
val
Умножает каждый элемент на число.
Поэлементно делит массив dat на dat2.
val
Делит каждый элемент на число.
Поэлементно прибавляет dat2 к массиву dat.
val
Прибавляет число к каждому элементу.
Поэлементно вычитает dat2 из массива dat.
val
Вычитает число из каждого элемента.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Эти команды управляют порядком выполнения других команд (условия, циклы, подпрограммы), (пере-)определяют аргументы скрипта и пр.
Переходит в папку path.
Задает N-ый аргумент скрипта равным smth. Отмечу, что smth используется как есть (с символами ‘'’ если присутствуют). Выполняется только подстановка других макроопределений $0...$9, $a...$z. Здесь N это цифра (0...9) или буква (a...z).
Определяет константу (скаляр) с именем name
и числовым значением smth
. Позднее она может быть использована как обычное число.
Задает N-ый аргумент скрипта равным символу с UTF кодом smth. Здесь N это цифра (0...9) или буква (a...z).
Задает N-ый аргумент скрипта равным числовому значению smth. Здесь N это цифра (0...9) или буква (a...z).
Задает N-ый аргумент скрипта равным символу палитры с индексом, найденным из smth. Здесь N это цифра (0...9) или буква (a...z).
Переходит к выполнению (вызывает) подпрограммы fname (или внешнего скрипта, если функция не была найдена). Опциональные аргументы передаются в подпрограмму. См. также func.
Определяет подпрограмму с именем fname и задает число требуемых аргументов. Аргументы будут помещены в параметры скрипта $1, $2, ... $9. Отмечу, что выполнение основной программы должно быть остановлено до начала определений подпрограмм. См. также stop, return.
Возвращается из подпрограммы.
Начинает блок команд, выполняемый если каждый элемент dat удовлетворяет условию cond.
val
Начинает блок команд, выполняемый если val
не ноль.
Начинает блок команд, выполняемый если предыдущий if
или elseif
не был выполнен и каждый элемент dat удовлетворяет условию cond.
val
Начинает блок команд, выполняемый если предыдущий if
или elseif
не был выполнен и val
не ноль.
Начинает блок команд, выполняемый если предыдущий if
или elseif
не был выполнен.
Заканчивает определение блока if/elseif/else
.
v1 v2 [dv=1]
Начинает блок команд, выполняемый в цикле с $N-ым аргументом изменяющимся от v1 до v2 с шагом dv. Здесь N это цифра (0...9) или буква (a...z).
Начинает блок команд, выполняемый в цикле с $N-ым аргументом пробегающим значения массива dat. Здесь N это цифра (0...9) или буква (a...z).
Заканчивает блок цикла for
.
val
Определяет код (между once on
и once off
) который будет выполнен только один раз. Полезно для работы с большими данными в программах типа UDAV.
Останавливает выполнение скрипта.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Опции команд позволяют легко настроить вид отдельного графика не меняя глобальных настроек для все рисунка. Опции указываются после команды. Каждая опция отделяется от предыдущей символом ‘;’. Опции работают так, что запоминают текущие настройки рисунка, применяют собственные настройки, выполняют команду и возвращают глобальные настройки обратно. Поэтому использование опций для команд обработки данных или настройки графика бесполезно.
Наиболее часто используемые опции – xrange, yrange, zrange
, устанавливающие границы изменения осей координат (и тем самым автоматических массивов). Например, команда plot y; xrange 0.1 0.9
построит кривую с x-координатой равно распределенной в интервале 0.1 ... 0.9, а не вдоль текущей оси x.
val
val
Задает величину прозрачности поверхности. Значение должно быть в диапазоне [0, 1]. См. также alphadef
val
Задает яркость фонового освещения. Значение должно быть в диапазоне [0, 1]. См. также ambient
val1 val2
Задает границы цветовой шкалы. См. также crange
val1 val2
Задает границы изменения координаты x. См. также xrange
val1 val2
Задает границы изменения координаты y. См. также yrange
val1 val2
Задает границы изменения координаты z. См. также zrange
val
Задает обрезание точек за пределами осей координат. См. также cut
val
Задает размер текста. См. также font
val
Задает размер маркеров. См. также marksize
val
Задает ориентировочное число линий, стрелок, ячеек и пр. См. также meshnum
Добавляет строку ’txt’ во внутренний массив записей легенды. Стиль линии и маркера аргумента последней вызванной команды построения 1D графики. См. также legend
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Суффиксы позволяют быстро получить числовую характеристику (размер, максимальное или минимальное значение, сумму элементов и т.д.) массива данных и использовать ее как число (скаляр) в аргументах. Суффиксы начинаются с точки ‘.’ сразу после (без пробелов) имени переменной и временного массива. Например, a.nx
даст размер массива a по оси х, b(1).max
даст максимальное значение второй строки массива b, (c(:,0)^2).sum
даст сумму квадратов элементов первой колонки массива c и т.д.
Полный список суффиксов:
Размер массива в направлении x, y, z соответственно.
Максимальное значение массива.
Минимальное значение массива.
Сумма элементов массива.
Первый элемент массива (элемент с индексами 0,0,0).
Первое не нулевое значение массива.
Последнее не нулевое значение массива.
Положение максимума в направлении x, y, z соответственно.
Положение центра масс в направлении x, y, z соответственно или среднее значение массива.
Ширина в направлении x, y, z соответственно или дисперсия элементов массива.
Асимметрия в направлении x, y, z соответственно или элементов массива.
Эксцесс в направлении x, y, z соответственно или элементов массива.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
MathGL содержит несколько программ для работы со скриптами MGL. Есть утилита для сохранения в растровое (mgl2png
, mgl2gif
) или векторное (mgl2eps
, mgl2svg
) изображения. Программа mglview
показывает результат выполнения скрипта MGL и позволяет вращать и настраивать график. Также можно транслировать MGL скрипт в C++ файл с помощью программы mgl2cpp
.
Все эти программы имеют схожий набор аргументов. Первым идет имя скрипта, а вторым идет имя выходного файлы (может быть опущено), последние аргументы – опции скрипта и программы. К опциям относятся параметры скрипта (это $0, $1, ... $9
) и настройки локали. Параметры скрипта имеют формат ‘-Nval’, где N=0,1...9 – номер параметра, val – его значние. Например, опция ‘-1test’ заменит $1
на ‘test’ в скрипте. Опция -Lval устанавливает локаль в значение val. Например, ‘-Lutf8’ будет использовать UTF-8 в скрипте.
Также можно создавать анимированные изображения GIF или набор JPEG файлов с именами ‘frameNNNN.jpg’ (где ‘NNNN’ – номер кадра). Для этого в скрипте надо указать параметры анимации для каждого кадра (строками с коментариями ##a val
или опциями ‘-Aval’) или в цикле (строкой с комментарием ##с v1 v2 [dv]
или опцию ‘-Cn1:n2’), которые будут подставлены в качестве параметра $0
при последовательном вызове скрипта. Для сохранения кадров в JPEG просто добавьте команду write ''
в конце скрипта.
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Alexey Balakin on May 31, 2011 using texi2html 1.82.