Во многих случаях желательно построение многих наложенных друг на друга графиков в одном и том же окне. Для этого служит команда продолжения графических построений hold. Она используется в следующих формах:
· hold on — обеспечивает продолжение вывода графиков в текущее окно, что позволяет добавлять последующие графики к уже существующим;
· hold off — отменяет режим продолжения графических построений;
· hold — работает как переключатель, последовательно включая режим продолжения графических построений и отменяя его.
Команда hold on устанавливает значение add для свойства NextPlot объектов figure и axes, a hold off устанавливает для этого свойства значение replace.
Графики синусоиды и трех параметрических функций в одном окне
Приведенный ниже пример показывает, как с помощью команды hold on на график синусоиды накладываются еще три графика параметрически заданных функций:
>> x=-5:0.1:5;
>> plot(x, sin(x));
>> hold on
>> plot(sin(x), cos(x));
>> plot(2*sin(x), cos(x));
>> plot(4*sin(x), cos(x));
>> hold off
В конце приведенного фрагмента программы команда hold off отключает режим добавления графиков к ранее построенным графикам.
Разбиение графического окна
Бывает, что в одном окне надо расположить несколько координатных осей с различными графиками без наложения их друг на друга. Для этого используются команды subplot, применяемые перед построением графиков:
· subplot — создает новые объекты класса axes (подокна);
· subplot(m,n, p) или subplot(mnp) — разбивает графическое окно на тхп подокон, при этом m — число подокон по горизонтали, n — число подокон по вертикали, а p— номер подокна, в которое будет выводиться текущий график (подокна отсчитываются последовательно по строкам);
· subplot(H), где Н — дескриптор для объекта axes, дает альтернативный способ задания подокна для текущего графика;
· subplot( 'position',[left bottom width height]) — создает подокно с заданными нормализованными координатами (в пределах от 0.0 до 1.0);
· subplot(lll) и clf reset — удаляют все подокна и возвращают графическое окно в обычное состояние.
Следующий пример иллюстрирует применение команды subplot:
>> x=-5:0.1:5;
>> subplot(2,2,1), plot(sin(x), cos(x))
>> subplot(2,2,2), plot(sin(5*x), cos(2*x+0.2))
>> subplot(2,2,3), plot(sin(4*x), cos(2*x))
>> subplot(2,2,4), plot(cos(2*x))
В этом примере последовательно строятся четыре графика различного типа, размещаемых в разных подокнах.
Для всех графиков возможна индивидуальная установка дополнительных объектов, например титульных надписей, надписей по осям и т. д.
Изменение масштаба графика
Для изменения масштаба двумерных графиков используются команды класса zoom:
· zoom — переключает состояние режима интерактивного изменения масштаба для текущего графика;
· zoom (FACTOR) устанавливает масштаб в соответствии с коэффициентом FACTOR;
· zoom on — включает режим интерактивного изменения масштаба для текущего графика;
· zoom off — выключает режим интерактивного изменения масштаба для текущего графика;
· zoom out — обеспечивает полный просмотр, т. е. устанавливает стандартный масштаб графика;
· zoom xon или zoom yon — включает режим изменения масштаба только по оси x или по оси у;
· zoom reset — запоминает текущий масштаб в качестве масштаба по умолчанию для данного графика;
Команда zoom позволяет управлять масштабированием графика с помощью мыши. Для этого надо подвести курсор мыши к интересующей вас области рисунка. Если команда zoom включена (on), то нажатие левой кнопки увеличивает масштаб вдвое, а правой — уменьшает вдвое. При нажатой левой кнопке мыши можно выделить пунктирным черным прямоугольником нужный участок графика — при отпускании кнопки он появится в увеличенном виде и в том масштабе, который соответствует выделяющему прямоугольнику.
Рассмотрим работу команды zoom на следующем примере:
>> x=-5:0.1:5;
>> plot(x, sin(x.^5)./(x.^5+eps))
>> zoom on
После прекращения манипуляций левой кнопкой мыши график примет вид, показанный на рисунке. Теперь в полный размер графического окна будет развернуто изображение, попавшее в выделяющий прямоугольник.
Команда zoom, таким образом, выполняет функцию «лупы», позволяющей наблюдать в увеличенном виде отдельные фрагменты сложных графиков. Однако следует учитывать, что для наблюдения фрагментов графиков при высоком увеличении они должны быть заданы большим количеством точек. Иначе вид отдельных фрагментов и тем более особых точек (в нашем случае это точка при x вблизи нуля) будет существенно отличаться от истинного.
Установка палитры цветов
Поскольку графика MATLAB обеспечивает получение цветных изображений, в ней есть ряд команд для управления цветом и различными световыми эффектами. Среди них важное место занимает установка палитры цветов. Палитра цветов RGB задается матрицей MAP из трех столбцов, определяющих значения интенсивности красного (red), зеленого (green) и синего (blue) цветов. Их интенсивность задается в относительных единицах от 0.0 до 1.0. Например, [0 0 0] задает черный цвет, [1 1 1] — белый цвет, [0 0 1] — синий цвет. При изменении интенсивности цветов в указанных пределах возможно задание любого цвета. Таким образом, цвет соответствует общепринятому формату RGB.
Для установки палитры цветов служит команда colormap, записываемая в следующих формах:
· colormap( 'default') — устанавливает палитру по умолчанию, при которой распределение цветов соответствует радуге;
· colormap(MAP) — устанавливает палитру RGB, заданную матрицей MAP;
· C= colormap — функция возвращает матрицу текущей палитры цветов С.
m-файл с именем colormap устанавливает свойства цветов для текущего графика.
Команда help graph3d наряду с прочим выводит полный список характерных палитр, используемых графической системой MATLAB:
· hsv - цвета радуги;
· hot - чередование черного, красного, желтого и белого цветов;
· gray - линейная палитра в оттенках серого цвета;
· bone - серые цвета с оттенком синего;
· copper - линейная палитра с оттенками меди;
· pink - розовые цвета с оттенками пастели;
· white - палитра белого цвета;
· flag - чередование красного, белого, синего и черного цветов;
· lines - палитра с чередованием цветов линий;
· colorcube - расширенная палитра RGB;
· jet - разновидность палитры HSV;
· prism - призматическая палитра цветов;
· cool - оттенки голубого и фиолетового цветов;
· autumn -оттенки красного и желтого цветов;
· spring - оттенки желтого и фиолетового цветов;
· winter - оттенки синего и зеленого цветов;
· summer - оттенки зеленого и желтого цветов.
Все эти палитры могут служить параметрами команды colormap, например colormap(hsv) фактически устанавливает то же, что и команда colormap( 'default').
Построение сферы
Для расчета массивов X, Y и Z координат точек сферы как трехмерной фигуры используется функция sphere:
· [X,Y,Z]=sphere(N) — генерирует матрицы X, Y и Z размера (N+1)x (N+1) для последующего построения сферы с помощью команд surfl (X, Y,Z) или surfl(X,Y,,Z);
· [X,Y,Z]=sphere — аналогична предшествующей функции при N=20.
Пример применения этой функции:
>> [X,Y,Z]=sphere(30);
>> surfl(X,Y,Z)
Хорошо видны геометрические искажения (сфера приплюснута), связанные с разными масштабами по координатным осям.
Обратите внимание на то, что именно функциональная окраска сферы придает ей довольно реалистичный вид. В данном случае цвет задается вектором Z.
Дата: 2019-05-29, просмотров: 295.