Самоучитель Matlab
Рис. 2.12. При отображении графиков кривых заданы опции определения цвета кривой, типа линии и вид маркера
но отнести, например, LineWidth (толщина базовой линии), MarkerSize (размер маркера), MarkerEdgeColor (цвет линии границы маркера – он может не совпадать с цветом заливки маркера), MarkerFaceColor (цвет заливки маркера).
Дополнительные параметры графика, такие как название, подписи к осям, координатная сетка и легенда, также могут быть отображены с помощью команд рабочей области. В частности, для отображения координатной сетки используют команду grid on. Название графика определяется с помощью функции title(), аргументом которой указывается название для графика, заключенное в одинарные кавычки. Подписи у горизонтальной и вертикальной координатных осей задаются соответственно с помощью функций xlabel() и ylabel(). Аргументами функций указываются текстовые аргументы (заключаются в одинарные кавычки) – подписи координатных осей.
Если в одном графическом отображается несколько графиков, полезно отображать легенду графиков. Делается это с помощью функции legend(). Ее текстовые аргументы соответствуют подписям для соответствующих кривых (порядок передачи текстовых аргументов соответствует порядку создания кривых), а числовой параметр определяет место расположения легенды в графическом окне. В табл. 2.4 перечислены возможные значения
56
Глава 2. Графика в Matlab
целочисленного параметра функции legend() и место размещения легенды для каждого из значений аргумента.
Табл. 2.4. Целочисленный аргумент функции legend()
Значение аргумента |
Размещение легенды |
|
|
-1 |
Легенда размещается в правом верхнем углу над областью |
графика |
|
|
|
0 |
Место для легенды выбирается автоматически так, чтобы не |
перекрывать область кривых |
|
|
|
1 |
Легенда размещается в правом верхнем углу области графи- |
ка. Этот режим используется по умолчанию |
|
|
|
2 |
Легенда размещается в левом верхнем углу области графика |
3 |
Легенда размещается в левом нижнем углу области графика |
4 |
Легенда размещается в правом нижнем углу области графика |
Рассмотрим следующие команды в рабочей области, которыми в одном графическом окне создается три графика и в которых используются перечисленные выше опции, инструкции и функции:
>>t=0:0.1:2*pi;
>>x=2*pi*cos(t);
>>y=2*pi*sin(t);
>>u=t.*cos(4*t);
>>v=t.*sin(4*t);
>>plot(x,y,'p','MarkerSize',10,'MarkerFaceColor','r','MarkerEdgeColor','g')
>>axis equal
>>grid on
>>hold on
>>plot(u,v,'b-','LineWidth',2)
>>title('All Stars')
>>xlabel('x(t)')
>>ylabel('y(t)')
>>legend('stars','line',3)
Результат выполнения этих команд представлен на рис. 2.13.
В одном графическом окне создается два графика, причем обе функции заданы в параметрическом виде. Кривая для первой функциональной зависимости представляет собой окружность радиуса 2π . Вторая кривая – это спираль. Для создания базовых точек первой кривой используем команды t=0:0.1:2*pi (узловые точки параметра, через который задаются в параметрическом виде обе функциональные зависимости), x=2*pi*cos(t) (соответствует уравнению x(t) = 2π cos(t)) и y=2*pi*sin(t) (соответствует уравнению y(t) = 2π sin(t)). Вторая кривая (спираль) задана зависимостями u(t) = t cos(4t) (ей соответствует команда u=t.*cos(4*t)) и v(t) = t sin(4t) (ей соответствует команда v=t.*sin(4*t)).
57
Самоучитель Matlab
Рис. 2.13. При создании графика использовались команды настройки параметров графики
Командой plot(x,y,'p','MarkerSize',10,'MarkerFaceColor', 'r','MarkerEdgeColor','g') создается график первой функции. Базовые точки отображаются пятиконечными звездами, в явном виде задан размер маркеров (значение опции MarkerSize указан равным 10), красный цвет заливки области маркера (значение 'r' для опции MarkerFaceColor) и зеленый цвет границ символа маркера (значение 'g' для опции
MarkerEdgeColor). Далее командами axis equal, grid on и hold on
соответственно фиксируется одинаковый масштаб по каждой из координатных осей, отображается координатная сетка и выполняется переход в режим вывода графиков без замещения в одно графическое окно – чтобы график следующей функции отображался вместе с первым графиком.
Спираль к уже созданному графику добавляем с помощью команды plot(u,v,'b-','LineWidth',2). Здесь через опции указаны следующие параметры: сплошная линия синего цвета толщины 2 (значение опции
LineWidth).
Командой title('All Stars') добавляется заголовок графика, подпись для горизонтальной оси определяется командой xlabel('x(t)'), а подпись для вертикальной оси – командой ylabel('y(t)'). Легенда в левом нижнем углу области графика добавляется командой legend('stars','line',3).
58
Глава 2. Графика в Matlab
Достаточно полезной является функция plotyy(). Она позволяет отображать в разном масштабе по вертикальной координатной оси одновременно два графика. Результат применения этой функции показан на рис. 2.14.
Рис. 2.14. Результат создания графики с помощью функции plotyy()
В данном случае для создания графика использовалась следующая последовательность команд:
>>x=0:0.01:10;
>>y=-5:0.01:5;
>>f=cos(x)./(1+x);
>>F=10*y.^5.*exp(-y.^2);
>>plotyy(x,f,y,F)
cos(x)
В графическом окне представлены графики функций f (x) = 1 + x на
интервале 0 ≤ x ≤ 10 и функции F(y) = 10y5 exp(−y2) на интервале −5 ≤ y ≤ 5 . Общий интервал аргумента вдоль горизонтальной координатной оси изменяется, таким образом, от -5 до 10. Что касается вертикальной координатной оси, то для каждой из двух функций масштаб свой. Масштаб для первой функции определяется по координатной оси вдоль левой границы области графика и соответствует диапазону значений от -1 до 1. Масштаб для второй функции определяется по координатной оси вдоль правой границы области графика и соответствует диапазону значений от -10 до 10.
59
Самоучитель Matlab
Такой режим бывает очень удобен, когда нужно, например, сравнить два параллельных (синхронных) сигнала или процесса разной амплитуды.
Достаточно удобным может быть режим отображения нескольких графиков
вотдельных подокнах одного графического окна. В этом случае используют функцию subplot(). У функции три аргумента. Первые два определяют количество подокон, на которые разбивается графическое окно. Третий аргумент определяет порядковый номер подокна для вывода следующего графика. В частности, все графическое окно условно разбивается на подокна равного размера (хотя, как будет показано далее, это не всегда так). Образуется своеобразная матрица из подокон. Первый аргумент функции subplot() определяет количество строк, а второй – количество столбцов такой матрицы. Например, если первый аргумент 2, а второй аргумент 3, то
вграфическом окне будет 6 подокон: по три подокна в два ряда. Порядок нумерации подокон в такой структуре выполняется слева направо, сверху вниз (то есть сначала последовательно, начиная с единицы, нумеруются подокна в первом ряду, затем во втором, и так далее). Сам по себе вызов функции с тремя аргументами создает только одно подокно, в которое затем функцией plot() выводится график. Пример использования функции subplot() в блоке команд приведен ниже:
>>x=-4*pi:0.01:4*pi;
>>y1=sin(x);
>>y2=sin(x)./x;
>>y3=(1-cos(x))./x.^2;
>>y4=x.^4.*exp(-x.^2);
>>y5=tanh(x);
>>y6=exp(-x.^2).*cos(x);
>>subplot(2,3,1);plot(x,y1)
>>subplot(2,3,2);plot(x,y2)
>>subplot(2,3,3);plot(x,y3)
>>subplot(2,3,4);plot(x,y4)
>>subplot(2,3,5);plot(x,y5)
>>subplot(2,3,6);plot(x,y6)
Команды создания графических подокон и отображения в них графиков размещаются в одной командной строке. В качестве разделителя между командами используется точка с запятой.
На заметку
Такой режим не является обязательным: можно было команды вводить последовательно, одна за другой.
В результате выполнения этих команд создается следующее графическое изображение (рис. 2.15).
60