Глава 2. Графика в Matlab
Рис. 2.15. В одном графическом окне несколько подокон
Работа с графическими подокнами осуществляется, в общем, так же, как и с одним окном. Следует только помнить, какое подокно на данный момент активно.
С помощью функции subplot() не обязательно создавать подокна одинакового размера. Например, после выполнения приведенных выше команд выполнить еще две:
>>subplot(2,1,2)
>>plot(x,y4)
В этом случае получим результат, как на рис. 2.16.
Произошло следующее: в верхнем ряду графического окна-контейнера отображено три подокна одинакового размера, а в нижнем ряду – одно подокно, которое занимает всю нижнюю область графического окна. Дело в том, что командой subplot(2,1,2) область графического окна условно разбивается на две части (два подокна одинакового размера), но реально создается только нижнее подокно – в соответствии с третьим аргументом функции subplot(). При этом три уже существующие подокна в нижней части, которые полностью перекрываются вновь созданным подокном, исчезают. Более того, даже если существующее подокно перекрывается новым подокном только частично, оно тоже удаляется. Например, рассмотрим команды:
61
Самоучитель Matlab
Рис. 2.16. Подокна разного размера
Рис. 2.17. Подокна совершенно разного размера
62
Глава 2. Графика в Matlab
>>subplot(2,2,1)
>>plot(x,y2)
С их помощью в левой верхней четверти графического окна создается новое подокно, которое полностью перекрывает одно подокно в первом ряду и еще одно, следующее, подокно – частично. В результате удаляются оба подокна (рис. 2.17).
Работа с графиками в подокнах осуществляется, в общем-то, так же, как и с обычными графическими окнами, просто предварительно необходимо с помощью функции subplot() выделить нужное подокно. На рис. 2.18 показан результат отображения в подокне, активированном командой subplot(2,2,1) координатной сетки.
Рис. 2.18. В один из графиков добавлена координатная сетка
Сетка, как и в предыдущих случаях, добавляется командой grid on. После выполнения команд subplot(2,1,2) и legend('my function',4) в график в нижней части графического подокна будет добавлена легенда (рис. 2.19).
На заметку
Чтобы убрать легенду из графика, достаточно выполнить команду legend off. Так же поступаем, чтобы убрать координатную сетку – полезной окажется команда grid off. Еще раз напомним, что предварительно нужно будет активировать соответствующее подокно.
63
Самоучитель Matlab
Рис. 2.19. В один из графиков добавлена легенда
Нередко возникает необходимость работать сразу с несколькими графическими окнами. Такой режим работы также возможен. В этом случае полезной окажется инструкция figure, с помощью которой создается новое графическое окно, которое становится активным. Следующий создаваемый график будет отображен в этом окне. Окна нумеруются подряд, то есть Figure 1, Figure 2 и так далее. При желании активным можно сделать любое из существующих окон, для чего достаточно вызвать функцию figure(), указав ее аргументом номер окна, которое необходимо активировать.
График в полярных координатах
Вы - умный человек. Вы, очевидно, точно рассчитали, что в моих силах, а что выше моих сил.
К/ф "Семнадцать мгновений весны"
Для создания графика в полярной системе координат используют встроенную функцию Matlab polar(). Напомним, что положение точки на плоскости в полярных координатах задается расстоянием r до точки от начала координат и углом ϕ направления на точку. Между полярными координатами (r,ϕ) и декартовыми (x,y) существует связь: x = r cos(ϕ)
и y = r sin(ϕ).
64
Глава 2. Графика в Matlab
При создании графика в полярных координатах первым аргументом функции polar() передается вектор со значениями ϕ -координат, а второй аргумент – вектор со значениями r -координат. Например, для того, чтобы построить график функции, заданной в полярных координатах соотношением r = sin(3ϕ), используем следующие команды:
>>phi=0:0.01:2*pi;
>>r=sin(3*phi);
>>polar(phi,r)
Результат представлен на рис. 2.20.
Рис. 2.20. График в полярных координатах
Фактически тот же график в декартовых координатах можно построить с помощью функции plot(), если воспользоваться такой последовательностью команд:
>>x=r.*cos(phi);
>>y=r.*sin(phi);
>>plot(x,y)
Здесь на основе полярных координат создаются векторы с декартовыми координатами, на основе которых затем строится график функции. Результат для этого случая представлен на рис. 2.21.
65