-
Одно из достоинств системы MATLAB – обилие средств графики, начиная от команд построения простых графиков функций одной переменной в декартовой системе координат и кончая комбинированными и презентационными графиками с элементами анимации, а также средствами проектирования графического пользовательского интерфейса (GUI).
-
Для построения графиков функций со значениями х и у, изменяющимися в широких пределах, нередко используются логарифмические масштабы. Рассмотрим команды, которые используются в таких случаях. | loglogx(…) – синтаксис команды аналогичен ранее рассмотренному для функции plot(…).
-
В некоторых случаях предпочтителен полулогарифмический масштаб графиков, когда по одной оси задается логарифмический масштаб, а по другой – линейный. | Для построения графиков функций в полулогарифмическом масштабе используются следующие команды:
-
Столбцовые диаграммы широко используются в литературе, посвященной финансам и экономике, а также в математической литературе. Ниже представлены команды для построения таких диаграмм.
-
Классическая гистограмма характеризует числа попаданий значений элементов вектора Y в М интервалов с представлением этих чисел в виде столбцовой диаграммы. Для получения данных для гистограммы служит функция hist, записываемая в следующем виде:
-
Лестничные графики визуально представляют собой ступеньки с огибающей, представленной функцией у(х). Такие графики используются, например, для отображения процессов квантования функции у(х), представленной рядом своих отсчетов.
-
Если данные для построения функции определены с заметной погрешностью, то используют графики функций типа errorbar с оценкой погрешности каждой точки путем ее представления в виде буквы I, высота которой соответствует заданной погрешности представления точки.
-
Еще один вид графика функции у(х) – ее представление дискретными отсчетами. Этот вид графика применяется, например, при описании квантования сигналов. Каждый отсчет представляется вертикальной чертой, увенчанной кружком, причем высота черты соответствует y-координате точки. | Рис. 6.11.
-
В полярной системе координат любая точка представляется как конец радиус-вектора, исходящего из начала системы координат, имеющего длину RHO и угол ТНЕТА. Для построения графика функции RHO(THETA) используются приведенные ниже команды. Угол ТНЕТА обычно меняется от 0 до 2*pi.
-
Угловые гистограммы находят применение в индикаторах радиолокационных станций, для отображения "роз" ветров и при построении других специальных графиков. Для этого используется ряд команд типа rose(…): | rose(THETA) – строит угловую гистограмму для 20 интервалов по данным вектора ТНЕТА;
-
Иногда желательно представление ряда радиус-векторов в их обычном виде, то есть в виде стрелок, исходящих из начала координат и имеющих угол и длину, определяемые действительной и мнимой частью комплексных чисел, представляющих эти векторы. Для этого служит группа команд compass:
-
Иногда полезно отображать комплексные величины вида z = х + yi в виде проекции радиус-вектора на плоскость. Для этого используется семейство графических команд класса feather: | feather(U.V) – строит график проекции векторов, заданных компонентами U и V, на плоскость;
-
Контурные графики служат для представления на плоскости функции двух переменных вида z(x, у) с помощью линий равного уровня. Они получаются, если трехмерная поверхность пересекается рядом плоскостей, расположенных параллельно друг другу.
-
Трехмерные поверхности обычно описываются функцией двух переменных z(x, у). Специфика построения трехмерных графиков требует не просто задания ряда значений х и у, то есть векторов х и у. Она требует определения для X и Y двумерных массивов – матриц.
-
Для построения графиков полей градиента служат команды quiver: | quiver(X.Y.U.V) – строит график поля градиентов в виде стрелок для каждой пары элементов массивов X и Y, причем элементы массивов U и V указывают направление и размер стрелок;
-
Команда plot3(…) является аналогом команды plot (…), но относится к функции двух переменных z(x, у). Она строит аксонометрическое изображение трехмерных поверхностей и представлена следующими формами:
-
Наиболее представительными и наглядными являются сетчатые графики поверхностей с заданной или функциональной окраской. В названии их команд присутствует слово mesh. Имеются три группы таких команд. Ниже приведены данные о наиболее полных формах этих команд.
-
Иногда график поверхности полезно объединить с контурным графиком ее проекции на плоскость, расположенным под поверхностью. | Для этого используется команда meshc: | meshc(…) – аналогична mesh(…), но помимо графика поверхности дает изображение ее проекции в виде линий равного уровня (графика типа contour). | Ниже дан пример применения этой команды: | >> [X.Y]=meshgrid([-3:0.15:3]); | >> Z=X.^2+Y.^2;
-
Еще один тип представления поверхности, когда она строится из многочисленных столбцов, дают команды класса meshz: | meshz(…) – аналогична mesh(…), но строит поверхность как бы в виде столбиков. Следующий пример иллюстрирует применение команды mesh: | >> [X.Y]=meshgrid([-3:0.15:3]); | >> Z=X.^2+Y.^2;
-
Особенно наглядное представление о поверхностях дают сетчатые графики, использующие функциональную закраску ячеек. Например, цвет окраски поверхности z(x, у) может быть поставлен в соответствие с высотой z поверхности с выбором для малых высот темных тонов, а для больших – светлых.
-
Для повышения наглядности представления поверхностей можно использовать дополнительный график линий равного уровня, получаемый путем проецирования поверхности на опорную плоскость графика (под поверхностью). Для этого используется команда surfс:
-
Пожалуй, наиболее реалистичный вид имеют графики поверхностей, в которых имитируется освещение от точечного источника света, расположенного в заданном месте координатной системы. Графики имитируют оптические эффекты рассеивания, отражения и зеркального отражения света.
-
Рекомендуется с помощью команды help ознакомиться с командами, задающими управление подсветкой и связанными с ней оптическими эффектами: | diffuse – задание эффекта диффузионного рассеяния; | lighting – управление подсветкой; | material – имитация свойств рассеивания света различными материалами;
-
Иногда бывают полезны графики трехмерных слоеных поверхностей, как бы состоящие из тонких пластинок – слоев. Такие поверхности строит функция water-fall (водопад): | waterfal(…) – строит поверхность, как команда mesh(…), но без показа ребер сетки.
-
Трехмерный контурный график представляет собой расположенные в пространстве линии равного уровня, полученные при расслоении трехмерной фигуры рядом секущих плоскостей, расположенных параллельно опорной плоскости фигуры.
-
После того как график уже построен, MATLAB позволяет выполнить его форматирование или оформление в нужном виде. Соответствующие этому средства описаны ниже. Так, для установки над графиком титульной надписи используется следующая команда:
-
Часто возникает необходимость добавления текста в определенное место графика, например для обозначения той или иной кривой графика. Для этого используется команда text: | text(X.Y. 'string') – добавляет в двумерный график текст, заданный строковой константой 'string', так что начало текста расположено в точке с координатами (X, Y).
-
Очень удобный способ ввода текста предоставляет команда gtext: | gtext('string') – задает выводимый на график текст в виде строковой константы ' string' и выводит на график перемещаемый мышью маркер в виде крестика.
-
Пояснение в виде отрезков линий со справочными надписями, размещаемое внутри графика или около него, называется легендой. Для создания легенды используются различные варианты команды legend: | legend(string1,string2, strings,…) – добавляет к текущему графику легенду в виде строк, указанных в списке параметров;
-
К сожалению, контурные графики плохо приспособлены для количественных оценок, если их линии не маркированы. В качестве маркеров используются крестики, рядом с которыми располагаются значения высот. Для маркировки контурных графиков используются команды группы clabel:
-
Обычно графики выводятся в режиме автоматического масштабирования. Следующие команды класса axis меняют эту ситуацию: | axis([XMIN XMAX YMIN YMAX]) – установка диапазонов координат по осям х и у для текущего двумерного графика;
-
В математической, физической и иной литературе при построении графиков в дополнение к разметке осей часто используют масштабную сетку. Команды grid позволяют задавать построение сетки или отменять это построение: | grid on – добавляет сетку к текущему графику; | grid off – отключает сетку;
-
Во многих случаях желательно построение многих наложенных друг на друга графиков в одном и том же окне. Для этого служит команда продолжения графических построений hold. Она используется в следующих формах:
-
Бывает, что в одном окне надо расположить несколько координатных осей с различными графиками без наложения их друг на друга. Для этого используются команды subplot, применяемые перед построением графиков: | subplot – создает новые объекты класса axes (подокна);
-
Для изменения масштаба двумерных графиков используются команды класса zoom: | zoom – переключает состояние режима интерактивного изменения масштаба для текущего графика; | zoom (FACTOR) устанавливает масштаб в соответствии с коэффициентом FACTOR;
-
Поскольку графика MATLAB обеспечивает получение цветных изображений, в ней есть ряд команд для управления цветом и различными световыми эффектами. Среди них важное место занимает установка палитры цветов.
-
При использовании функциональной окраски важное значение имеет установка соответствия между палитрой цветов и масштабом координатных осей. Так, выбор ограниченного диапазона интенсивностей цветов может привести к тому, что цветовая гамма будет блеклой и функциональная закраска не будет достигать своих целей.
-
Довольно часто возникает необходимость представления той или иной матрицы в цветах. Для этого используют псевдоцвета, зависящие от содержимого ячеек. Такое представление реализуют команды класса pcolor: | pcolor (С) – задает представление матрицы С в псевдоцвете;
-
Для создания закрашенного пятна в виде многоугольника может использоваться команда patch: | patch(X,Y,C) – создает закрашенный многоугольник, вершины которого заданы векторами X и Y в текущей системе координат, а спецификация окраски задана вектором цветовой палитры С.
-
Для построения окрашенных в заданный цвет плоских многоугольников может использоваться команда fill (заполнить): | fill(X.Y.C) – строит закрашенный плоский многоугольник, вершины которого задаются векторами X и Y с цветом, заданным С. Многоугольник должен быть замкнутым.
-
При использовании функциональной окраски весьма полезным является вывод шкалы цветов командой colorbar. Ее варианты перечислены ниже: | colorbar('vert') – выводит вертикальную шкалу цветов на текущий график; | colorbar('horiz') – выводит горизонтальную шкалу цветов на текущий график;
-
Закрашенные секторы часто используются для построения круговых диаграмм. Для этого в MATLAB служит команда piе: | pie(X) – строит круговую диаграмму по данным нормализованного вектора X/ SUM(X), SUM(X)– сумма элементов вектора.
-
Для закраски многоугольников, определенных в пространстве, служит команда fill3. Ниже представлены основные ее формы: | fill3(X,Y,Z,C) – строит закрашенный многоугольник в пространстве с данными вершин, хранящимися в векторах X, Y и Z, и цветом, заданным палитрой С.
-
Иногда используются объемные круговые диаграммы. Для их построения служит команда pie3: | pie3(…) – аналогична команде pie(…), но дает построение объемных секторов. | В приведенном ниже примере строится объемная диаграмма с отделением двух секторов, показанная на рис. 6.51: | >> X=[1 2 3 4 5];
-
Для построения цилиндра в виде трехмерной фигуры применяется функция cylinder: | [X,Y,Z]=cylinder(R,N) – создает массивы X, Y и Z, описывающие цилиндрическую поверхность с радиусом R и числом узловых точек N для последующего построения с помощью функции surf(X.Y.Z);
-
Для расчета массивов X, Y и Z координат точек сферы как трехмерной фигуры используется функция sphere: | [X.Y,Z]=sphere(N) – генерирует матрицы X, Y и Z размера (N+l)x(N+l) для последующего построения сферы с помощью команд surf (X, Y.Z) или surfl (X. Y.Z);
-
К числу специальных видов графики относится построение объемных фигур с помощью плоских треугольников. Для построения таких фигур в виде каркаса (без окраски и отображения плоскостей) используется команда trimesh: