Как сделать сетку в матлабе на графике

Обновлено: 04.07.2024

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

grid on — добавляет сетку к текущему графику;

grid off — отключает сетку;

grid — последовательно производит включение и отключение сетки.

Рис. 6.40. График синусоиды с сеткой разметки

Команды grid устанавливают свойства объектов XGrid, Ygrid и Zgrid для текущих осей. Ниже приведен пример из предшествующего раздела с добавлением в него команды grid:

Построенный граф ик показан на рис. 6.40.

Сравните этот график с графиком на рис. 6.39, на котором сетка отсутствует. Нетрудно заметить, что наличие сетки облегчает количественную оценку координат точек графика.

Команда grid on наносит координатную сетку на текущие оси.

Команда grid off удаляет координатную сетку.

Команда grid выполняет роль переключателя с одной функции на другую.

Команды группы grid выполняют установку свойств ‘XGrid’, ‘YGrid’, ‘ZGrid’ объекта axes.

Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter

Grid lines for two- and three-dimensional plots

The grid function turns the current axes’ grid lines on and off.

grid on adds major grid lines to the current axes.

grid off removes major and minor grid lines from the current axes.

grid toggles the major grid visibility state.

grid(axes_handle. ) uses the axes specified by axes_handle instead of the current axes.

grid sets the XGrid , YGrid , and ZGrid properties of the axes.

grid minor sets the XMinorGrid , YMinorGrid , and ZMinorGrid properties of the axes.

You can set the grid lines for just one axis using the set command and the individual property. For example,

turns on only x-axis grid lines.

Note that the grid line width is not affected by the axes LineWidth property.

3. Трёхмерная графика .

Высокоуровневая графическая подсистема MATLABа автоматически реализует трёхмерную графику без специальных усилий со стороны пользователя. Пусть в точке с координатами x1,y1 вычислено значение функции z=f(x,y) и оно равно z1. В некоторой другой точке (то есть при другом значении аргументов) x2,y2 вычисляют значение функции z2. Продолжая этот процесс, получают массив (набор) точек (x1,y1,z1), (x2,y2,z2), (xN,yN,zN) в количестве N штук, расположенных в трёхмерном пространстве. Специальные функции системы MATLAB проводят через эти точки гладкие поверхности и отображают их проекции на плоский дисплей компбютера.

Чаще всего точки аргументов расположены в области определения функции регулярно в виде прямоугольной сетки (то есть матрицы). Такая сетка точек порождает две матрицы одной и той же структуры: первая матрица содержит значения первых координат этих точек (x — координат), а вторая матрица содержит значения вторых координат (y — координат). Обозначим первую матрицу как X, а вторую — как Y. Есть ещё и третья матрица — матрица значений функции z=f(x,y)при этих аргументах. Эту матрицу обозначим буквой Z.

Простейшей функцией построения графика функции двух переменных в системе MATLAB является функция

plot3( X , Y , Z )

где X, Y и Z — матрицы одинаковых размеров, смысл которых мы только что объяснили.

В системе MATLAB имеется специальная функция для получения двумерных массивов X и Y по одномерным массивам x, y.

grid on в matlab

Пусть по оси x задан диапазон значений в виде вектора

u = -2 : 0.1 : 2

а по оси y этот диапазон есть

Для получения матриц X и Y, представляющих первые и вторые координаты получающейся прямоугольной сетки точек используют специальную функцию системы MATLAB:

[ X , Y ] = meshgrid( u, v )

Как мы видим, эта функция получает на входе два одномерных массива (вектора), представляющие массивы точек на осях координат, и возвращает сразу два искомых двумерных массива. На прямоугольной сетке точек вычисляем значения функции, например функции exp:

Z = exp( — X.^2 — Y.^2 )

Наконец, применяя описанную выше функцию plot3,получаем следующее изображение трёхмерного графика этой функции:

grid on в matlab

Из этого рисунка видно, что функция plot3 строит график в виде набора линий в пространстве, каждая из которых является сечением трёхмерной поверхности плоскостями, параллельными плоскости yOz. По-другому можно сказать, что каждая линия получается из отрезков прямых, соединяющих набор точек, координаты которых берутся из одинаковых столбцов матриц X, Y и Z. То есть, первая линия соответствует первым столбцам матриц X, Y Z; вторая линия — вторым столбцам этих матриц и так далее.

Для построения трёхмерных линий, задаваемых параметрически применяется другая форма вызова функции plot3:

plot3( x, y, z )

где x, y и z являются одномерными массивами координат точек, которые и нужно последовательно соединить отрезками прямых. Например, следующий фрагмент кода

t = 0 : pi/50 : 10*pi ;

x = sin( t );

y = cos( t );

plot3( x , y , t );

grid on

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

grid on

grid on в matlab

Помимо этой простейшей функции система MATLAB располагает ещё рядом функций, позволяющих добиваться большей реалистичности в изображении трёхмерных графиков. Это функции mesh, surf и surfl.

exp( — X.^2 — Y.^2 )

можно получить вот такое изображение

grid on в matlab

grid on в matlab

функции mesh применить функцию surf( X, Y, Z ).

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

С помощью функции surf получаются хотя и искусственно раскрашенные, но весьма наглядные изображения. Если же мы хотим добиться более естественных и объективных способов окрашивания поверхностей, то следует использовать функцию surfl.

Функция surfl трактует поверхность графика как материальную поверхность с определёнными физическими свойствами по отражению света. По умолчанию задаётся некоторый источник света, освещающий такую материальную поверхность, после чего рассчитываеются траектории отражённых лучей, попадающих в объектив условной камеры. Изображение в такой камере и показывается в графическом окне системы MATLAB.

Так как разные материалы по-разному отражают падающие лучи, то можно подобрать некоторый материал, чтобы получить наилучшее (с точки зрения пользователя) изображение. В частности, можно использовать функцию

colormap( copper )

с помощью которой для изображения графика выбирается набор цветов (по-английски — colormap), который характерен для света, отражающегося от медной поверхности (медь по-английски — copper). После этого применение функции

surfl( X, Y, Z )

вместо surf(X,Y,Z) приводит к получению очень реалистически выглядящего и очень наглядного графика:

grid on в matlab

Можно с такого графика убрать чёрные линии, изображающие рёбра, а также добиться ещё более плавного перехода освещения поверхности, если выполнить команду

shading interp

означающую, что теперь цвет (освещённость) будет меняться даже внутри отдельных граней (ячеек). В итоге будет получаться совсем уж реальное изображение некоторой объёмной фигуры. Лучше это или хуже для задачи изображения графиков функций двух переменных — судить конкретному пользователю.

В среде Mathcad фактически нет графиков функций в математическом понимании термина, а есть визуализация данных, находящихся в векторах и матрицах (то есть осуществляется построение как линий так и поверхностей по точкам с интерполяцией), хотя пользователь может об этом и не знать, поскольку у него есть возможность использования непосредственно функций одной или двух переменных для построения графиков или поверхностей соответственно. Так или иначе, механизм визуализации Mathcad значительно уступает таковому у Matlab, где достаточно иметь только вид функции, чтобы построить график или поверхность любого уровня сложности. По сравнению с Matlab, графика Mathcad имеет ещё такие недостатки, как: невозможность построения поверхностей, заданных параметрически, с непрямоугольной областью определения двух параметров; создание и форматирование графиков только через меню, что ограничивает возможности программного управления параметрами графики.

Однако следует помнить об основной области применения Mathcad - для задач инженерного характера и создание учебных интерактивных документов, возможностей визуализации вполне достаточно. Опытные пользователи Mathcad демонстрируют возможность визуализации сложнейших математических конструкций, но объективно это уже выходит за рамки назначения пакета.

Графика в Matlab

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

Построение графика функций одной переменной

Графики строятся в отдельных масштабируемых и перемещаемых окнах. Возьмем вначале простейший пример — построение графика синусоиды. Следует помнить, что Matlab строит графики функций по ряду точек, соединяя их отрезками прямых, т. е. осуществляя линейную интерполяцию функции в интервале между смежными точками. Зададим интервал изменения аргумента х от 0 до 10 с шагом 0.1. Для построения графика достаточно вначале задать вектор х=0:0.1:10, а затем использовать команду построения графиков plot(sin(x)). Результат показан на рис. 22.1.

>> x=0:0.1:10;

>> plot(sin(x))

Вектор х задает интервал изменения независимой переменной от 0 до 10 с шагом 0.1. Почему взят такой шаг, а не, скажем, 1? Дело в том, что plot строит не истинный график функции sin(x), а лишь заданное числом элементов вектора х число точек. Эти точки затем просто соединяются отрезками прямых, т. е. осуществляется кусочно-линейная интерполяция данных графика. При 100 точках полученная кривая глазом воспринимается как вполне плавная, но при 10-20 точках она будет выглядеть состоящей из отрезков прямых.

Графики Matlab строит в отдельных окнах, называемых графическими окнами. Меню графического окна, показанного на рис. 22.1, отличается от меню главного окна Matlab. Например, в меню окна появились позиции Tools (Инструменты) и Insert (Вставка). Средства этой панели (мы их рассмотрим подробнее в дальнейшем) позволяют легко управлять параметрами графиков и наносить на них текстовые комментарии в любом месте.

Меню File (Файл) окна графики содержит типовые файловые операции, в частности сохранение графических окон в файлы, и их открытия. Однако они относятся не к файлам документов, а к файлам графиков. В частности, можно присваивать имя записываемым на диск рисункам с графиками.


Рис. 22.1. Пример построения графика синусоиды

Построение в одном окне графиков нескольких функций

Пойдем дальше и попытаемся построить графики сразу трех функций: sin(x), cos(x) и sin(x)/х.

Отметим, что переменные yl, y2, y3 в результате выполнения данных команд являются не функциями, а векторами, имеющими ту же размерность, что и вектор x. Поэтому эти переменные не имеют явного указания аргумента в виде у(х). Обратите внимание, что точка с запятой позволяет писать несколько команд в одной строке.

Теперь можно использовать одну из форм команды plot:

>> plot(xl,fl,x2,f2,x3,f3. )

где xl, x2, xЗ. — векторы аргументов функций (в нашем случае все они равны х), a f1, f2, f3. — векторы значений функций, графики которых строятся в одном окне. В нашем случае для построения графиков указанных функций мы должны записать следующее:

Можно ожидать, что Matlab в этом случае построит, как обычно, точки графиков этих функций и соединит их отрезками линий. Но если мы выполним эти команды, то графика третьей функции не получим. Не исключен даже сбой в работе программы. Причина этого в том, что при вычислении функции y3=sin(x)/x, если х представляет собой массив (вектор), то нельзя использовать оператор матричного деления /.

Этот пример еще раз наглядно указывает на то, что чисто поверхностное применение даже такой мощной системы, как Matlab, иногда приводит к досадным срывам. Чтобы все же получить график, надо вычислять отношение sin(x) к х с помощью оператора поэлементного деления массивов ./ (точка+слэш).


Рис. 22.2. Построение графиков трех функций

Графическая функция fplot

Разумеется, Matlab имеет средства для построения графиков и таких функций, как sin(x)/x, которые имеют устранимые неопределенности. Не обсуждая эти средства подробно, просто покажем, как это делается, с помощью другой графической команды —

fplot('f(x)', [xmin xmax])

Она позволяет строить функцию, заданную в символьном виде, в интервале изменения аргумента х от xmin до xmax без фиксированного шага изменения х. Один из вариантов ее применения демонстрирует рис. 22.3.

Хотя в процессе вычислений предупреждение об ошибке (деление на 0) выводится, но график строится правильно, т.е. при х=0 sin(x)/x = l. Обратите также внимание на две используемые команды: clear (очистить)— очистка графического окна и grid on (сетка)— включение отображения сетки, которая строится пунктирными линиями.


Рис. 22.3. Построение графика sin(x)/x функцией fplot

Столбцовые диаграммы

В прикладных расчетах часто встречаются графики, именуемые столбцовыми диаграммами, отражающие содержание некоторого вектора V. При этом каждый элемент вектора представляется столбцом, высота которого пропорциональна значению элемента. Столбцы нумеруются и масштабируются по отношению к максимальному значению наиболее высокого столбца. Выполняет построение такого графика команда bar(V) (рис. 22.4).

>> V=1:8

V =

1 2 3 4 5 6 7 8

>> bar(V)


Рис. 22.4. Построение столбцовой диаграммы значений элементов вектора

Столбцовые диаграммы — лишь один из многих типов графиков, которые может строить система Matlab. Особенно часто столбцовые диаграммы используются при представлении данных финансово-экономических расчетов.

Построение трехмерных графиков

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

Окно с построенным графиком показано на рис. 22.5.


Рис. 22.5. Окно с графиками поверхности и ее проекции на плоскость под фигурой

В Matlab можно в считанные секунды изменить задающую поверхность функцию Z(X, Y) и тут же получить новый график поверхности с окраской, в данном случае заданной вектором Z, и с ее проекцией на плоскость XY.

Мы ограничимся этими примерами построения графиков как достаточно простыми и типовыми. Из них следует важный вывод — для решения той или иной частной задачи надо знать соответствующие команды и функции.

Вращение графиков мышью

Можно поворачивать построенную фигуру мышью и наблюдать ее под разными углами. Рассмотрим эту возможность на примере построения логотипа системы Matlab — мембраны. Для этого, введя команду membrane, получим график, представленный на рис.22. 6.


Рис. 22.6. Построение мембраны — логотипа системы Matlab

Для вращения графика достаточно активизировать кнопку панели инструментов с изображением пунктирной окружности со стрелкой (рис. 22.6).

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

Контекстное меню графиков

Для переключения в режим редактирования графика можно ваполнить команду меню Tools / Edit Plot или щелкнуть на кнопке Edit Plot (Редактировать график) с изображением курсора-стрелки. В этом режиме графиком можно управлять с помощью контекстного меню, вызываемого щелчком правой кнопки мыши. Вид этого меню при курсоре, расположенном в графика вне построенных графических объектов, показан на рис. 22.7. С помощью мыши можно также выделить график. Щелчок левой клавишей выводит рамку вокруг рисунка (см. рис. 22.7).


Рис. 22.7. График в состоянии редактирования и контекстное меню

Форматирование свойств графиков

Matlab имеет возможность легко настраивать и корректировать свойства графиков с помощью специальных средств. Одним из них является редактор свойств (Property Editor). Редактор свойств можно вызвать через команду главного меню View / Property Editor или через команду контекстного меню Show Property Editor. Вид редактора свойств зависит от того, какой элемент графика выделен. Например, на рис. 22.8 выделена рамка, а на рис. 22.9 выделена линия графика.


Рис. 22.8. Выделена рамка


Рис. 22.9. Выделена линия графика

Форматирование линий и маркеров для графика нескольких функций

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

Обратите внимание на то, как заданы степени синуса. Записать эти выражения в виде sin(x)^2 и cos(x)^2 будет грубейшей ошибкой, поскольку х здесь вектор. Операторы .^ в данном случае дают поэлементное возведение в степень, что и нужно для построения графиков этих функций. Рис. 10 показывает пример такого форматирования для графика, полученного исполнением этих команд.


Рис. 22.10. Пример форматирования для графика трех функций

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

Нанесение надписей и стрелок на график

Надписи на график можно нанести с помощью панели инструментов Plot Edit Toolbar (рис. 22.11). Место надписи фиксируется щелчком мыши.


Рис. 22.11. Инструменты для нанесения надписей

На рис. 22.12 показан отформатированный график с тремя надписями. Надписи сделаны с разным размером символов и разным стилем. Обратите внимание, что при задании на надписи возведения в степень знаком ^ надпись на экране отображается в естественном математическом виде (степень в виде верхнего индекса).


Рис. 22.12. Нанесение надписей на график

Как видно на рисунке, параметры выделенной надписи можно изменять как минимум тремя способами:

  • с помощью редактора свойств;
  • с помощью панели инструментов Plot Edit Toolbar;
  • с помощью контекстного меню.

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

Построение легенды на графике

Дополнительно можно изменить размеры графика (см. меню Tools (Инструменты) и его команды Zoom In (Увеличить)и Zoom Out (Уменьшить)), выполнить поворот графика мышью (команда Rotate 3D) и подключить к графику легенду — пояснение в виде отрезков линий со справочными надписями, размещаемое внутри графика или около него. Поскольку наш график содержит три кривые, то легенда представляет собой обозначение этих трех линий в правом верхнем углу рисунка (рис. 22.13). Каждая линия имеет тот же цвет, что и на графике (и тот же стиль).


Рис. 22.13. График с легендой

Текстовая часть легенды берется из параметра Display Name редактора свойств (см. рис. 22.14).


Рис. 22.14. Задание имени графика для легенды в редакторе свойств для выделенного графика

Отметим, что все описанные возможности форматирования графиков доступны и программным способом, путем задания соответствующих графических команд, параметров и примитивов. Например команда text(х,у, 'legend') позволяет задать надпись 'legend' с началом, имеющим координаты (х, у).

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

Функция plot

Рассмотрение возможностей MatLab по визуализации данных начнем с двумерных графиков, которые обычно строятся с помощью функции plot(). Множество вариантов работы данной функции лучше всего рассмотреть на конкретных примерах.


Предположим, что требуется вывести график функции синуса в диапазоне от 0 до . Для этого зададим вектор (множество) точек по оси Ox, в которых будут отображаться значения функции синуса:


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

и выведем результат на экран

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

Представленная запись функции plot() показывает, что сначала записывается аргумент со множеством точек оси Ох, а затем, аргумент со множеством точек оси Oy. Зная эти значения, функция plot() имеет возможность построить точки на плоскости и линейно их интерполировать для придания непрерывного вида графика.


Рис. 3.1. Отображение функции синуса с помощью функции plot().

Функцию plot() можно записать и с одним аргументом x или y:

в результате получим два разных графика, представленные на рис. 3.2.

Анализ рис. 3.2 показывает, что в случае одного аргумента функция plot() отображает множество точек по оси Oy, а по оси Оx происходит автоматическая генерация множества точек с единичным шагом. Следовательно, для простой визуализации вектора в виде двумерного графика достаточно воспользоваться функцией plot() с одним аргументом.

Для построения нескольких графиков в одних и тех же координатных осях, функция plot() записывается следующим образом:

x = 0:0.01:pi;
y1 = sin(x);
y2 = cos(x);
plot(x,y1,x,y2);

Результат работы данного фрагмента программы представлен на рис. 3.3.



Рис. 3.2. Результаты работы функции plot() с одним аргументом:

а – plot(x); б – plot(y).


Рис. 3.3. Отображение двух графиков в одних координатных осях.

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

y1 = sin(x);
y2 = cos(x);

которые требуется отобразить на экране. Для этого объединим их в двумерную матрицу


в которой столбцы составлены из векторов y1 и y2 соответственно. Такая матрица будет отображена функцией

plot([y1’ y2’]); % апострофы переводят вектор-строку
% в вектор-столбец

в виде двух графиков (рис. 3.4).


Рис. 3.4. Отображение двумерной матрицы в виде двух графиков.

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

x1 = 0:0.01:2*pi;
y1 = sin(x1);

x2 = 0:0.01:pi;
y2 = cos(x2);

plot(x1, y1); % рисование первого графика
figure; % создание 2-го графического окна
plot(x2, y2); % рисование 2-го графика во 2-м окне

Функция figure, используемая в данной программе, создает новое графическое окно и делает его активным. Функция plot(), вызываемая сразу после функции figure, отобразит график в текущем активном графическом окне. В результате на экране будут показаны два окна с двумя графиками.

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

x1 = 0:0.01:2*pi;
y1 = sin(x1);

x2 = 0:0.01:pi;
y2 = cos(x2);

figure(1); %создание окна с номером 1
plot(x1, y1); % рисование первого графика
figure(2); % создание графического окна с номером 2
plot(x2, y2); % рисование 2-го графика во 2-м окне

При выполнении данной программы на экране всегда будут отображены только два графических окна с номерами 1 и 2, и в них показаны графики функций синуса и косинуса соответственно.

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

Рассмотрим пример отображения двух графиков друг под другом вышеприведенных функций синуса и косинуса.

x1 = 0:0.01:2*pi;
y1 = sin(x1);

x2 = 0:0.01:pi;
y2 = cos(x2);

figure(1);
subplot(2,1,1); % делим окно на 2 строки и один столбец
plot(x1,y1); % отображение первого графика
subplot(2,1,2); % строим 2-ю координатную ось
plot(x2,y2); % отображаем 2-й график в новых осях

Результат работы программы показан на рис. 3.5.

Аналогичным образом можно выводить два и более графиков в столбец, в виде таблицы и т.п. Кроме того, можно указывать точные координаты расположения графика в графическом окне. Для этого используется параметр position в функции subplot():

subplot(‘position’, [left bottom width height]);

где left – смещение от левой стороны окна; bottom – смещение от нижней стороны окна; width, height – ширина и высота графика в окне. Все эти переменные изменяются в пределах от 0 до 1.


Рис. 3.5. Пример работы функции subplot.

Ниже представлен фрагмент программы отображения графика функции синуса в центре графического окна. Результат работы показан на рис. 3.6.

x1 = 0:0.01:2*pi;
y1 = sin(x1);

subplot(‘position’, [0.33 0.33 0.33 0.33]);
plot(x1,y1);

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

Таким образом, используя параметр position можно произвольно размещать графические элементы в плоскости окна.


Рис. 3.6. Пример работы функции subplot с параметром position.

Оформление графиков

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

Функция plot() позволяет менять цвет и тип отображаемой линии. Для этого, используются дополнительные параметры, которые записываются следующим образом:

Обратите внимание, что третий параметр записывается в апострофах и имеет обозначения, приведенные в таблицах 3.1-3.3. Маркеры, указанные ниже записываются подряд друг за другом, например,

‘ko’ – на графике отображает черными кружками точки графика,
‘ko-‘ – рисует график черной линией и проставляет точки в виде кружков.

Табл. 3.1. Обозначение цвета линии графика

Маркер Цвет линии
c голубой
m фиолетовый
y желтый
r красный
g зеленый
b синий
w белый
k черный

Табл. 3.2. Обозначение типа линии графика

Маркер Цвет линии
- непрерывная
-- штриховая
: пунктирная
-. штрих-пунктирная

Табл. 3.3. Обозначение типа точек графика

Маркер Цвет линии
. точка
+ плюс
* звездочка
o кружок
x крестик

Ниже показаны примеры записи функции plot() с разным набором маркеров.

x = 0:0.1:2*pi;
y = sin(x);

subplot(2,2,1); plot(x,y,'r-');
subplot(2,2,2); plot(x,y,'r-',x,y,'ko');
subplot(2,2,3); plot(y,'b--');
subplot(2,2,4); plot(y,'b--+');

Результат работы фрагмента программы приведен на рис. 3.7. Представленный пример показывает, каким образом можно комбинировать маркеры для достижения требуемого результата. А на рис. 3.7 наглядно видно к каким визуальным эффектам приводят разные маркеры, используемые в программе. Следует особо отметить, что в четвертой строчке программы по сути отображаются два графика: первый рисуется красным цветом и непрерывной линией, а второй черными кружками заданных точек графика. Остальные варианты записи маркеров очевидны.


Рис. 3.7. Примеры отображения графиков с разными типами маркеров

Из примеров рис. 3.7 видно, что масштаб графиков по оси Ox несколько больше реальных значений. Дело в том, что система MatLab автоматически масштабирует систему координат для полного представления данных. Однако такая автоматическая настройка не всегда может удовлетворять интересам пользователя. Иногда требуется выделить отдельный фрагмент графика и только его показать целиком. Для этого используется функция axis() языка MatLab, которая имеет следующий синтаксис:

axis( [ xmin, xmax, ymin, ymax ] ),

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


Воспользуемся данной функцией для отображения графика функции синуса в пределах от 0 до :

x = 0:0.1:2*pi;
y = sin(x);

subplot(1,2,1);
plot(x,y);
axis([0 2*pi -1 1]);

subplot(1,2,2);
plot(x,y);
axis([0 pi 0 1]);

Из результата работы программы (рис. 3.8) видно, что несмотря на то, что функция синуса задана в диапазоне от 0 до , с помощью функции axis() можно отобразить как весь график, так и его фрагмент в пределах от 0 до .


Рис. 3.8. Пример работы функции axis()

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

Таблица 3.4. Функции оформления графиков

Название Описание
grid [on, off] Включает/выключает сетку на графике
title(‘заголовок графика’) Создает надпись заголовка графика
xlabel(‘подпись оси Ox’) Создает подпись оси Ox
ylabel(‘подпись оси Oy’) Создает подпись оси Oy
text(x,y,’текст’) Создает текстовую надпись в координатах (x,y).

Рассмотрим работу данных функций в следующем примере:

x = 0:0.1:2*pi;
y = sin(x);

plot(x,y);
axis([0 2*pi -1 1]);
grid on;
title('The graphic of sin(x) function');
xlabel('The coordinate of Ox');
ylabel('The coordinate of Oy');
text(3.05,0.16,'\leftarrow sin(x)');

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

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

Читайте также: