p align="left">- Pos=0 - лучшее место, выбираемое автоматически; - Pos=1 - верхний правый угол; - Pos=2 - верхний левый угол; - Pos=3 - нижний левый угол; - Pos=4 - нижний правый угол; - Pos=-1 - справа от графика. Чтобы перенести легенду, установите на нее курсор, нажмите левую кнопку мыши и перетащите легенду в необходимую позицию. Команда legend может использоваться с двумерной и трехмерной графикой и со специальной графикой - столбцовыми и круговыми диаграммами и т. д. Двойным щелчком можно вывести легенду на редактирование. Пример, приведенный ниже, строит график трех функций с легендой, размещенной в поле графика: >> x=-2*pi:0.1*pi:2*pi; >> y1=sin(x); >> y2=sin(x).^2; >> y3=sin(x).^3; >> plot(x,y1,'-m',x,y2,'-.+r',x,y3,'--ok') >> legend('Function 1','Function 2', 'Function 3'); Управление свойствами осей графиков Обычно графики выводятся в режиме автоматического масштабирования. Следующие команды класса axis меняют эту ситуацию: · axis([XMIN XMAX YMIN YMAX]) -- установка диапазонов координат по осям x и у для текущего двумерного графика; · axis([XMIN XMAX YMIN YMAX ZMIN ZMAX]) - установка диапазонов координат по осям x, у и z текущего трехмерного графика; · axis auto -- установка параметров осей по умолчанию; · axis manual -- «замораживает» масштабирование в текущем состоянии, чтобы при использовании команды hold on следующие графики использовали те же параметры осей; · axis tight -- устанавливает диапазоны координат по осям в соответствии с диапазонами изменения данных; · axis ij -- задает «матричную» прямоугольную систему координат с началом координат в левом верхнем углу, ось i -- вертикальная, размечаемая сверху вниз, ось j -- горизонтальная и размечается слева направо; · axis xy -- устанавливает декартову систему координат с горизонтальной осью х, размечаемой слева направо, и вертикальной осью у, размечаемой снизу вверх. Начало координат размещается в нижнем левом углу; · axis equal -- включает масштаб с одинаковым расстоянием между метками по осям х, у и z; · axis image -- устанавливает масштаб, при котором пиксели изображения становятся квадратами; · axis square -- устанавливает текущие оси в виде квадрата (или куба в трехмерном случае) с одинаковым расстоянием между метками и одинаковой длиной осей; · axis normal -- восстанавливает масштаб, отменяя установки axis equal и axis square; · axis vis3d -- «замораживает» пропорции осей для возможности поворота трехмерных объектов; · axis off -- убирает с осей их обозначения и маркеры; 0 · axis on -- восстанавливает ранее введенные обозначения осей и маркеры; · V=axis -- возвращает вектор- строку, содержащую коэффициенты масштабирования для текущего графика. Если текущий график двумерный, то вектор имеет 4 компонента, если трехмерный -- 6 компонентов. Следующий пример иллюстрирует применение команды axis при построении двумерного графика функции одной переменной: >> axis([-10 10 -1.5 1.5]) >> x=-5:0.1:5; >> plot(x, sin(x)); >> axis([-8 8 -1.5 1.5]) Обратите внимание, что теперь масштабы осей заданы командой axis, а не диапазоном изменения значений x и у. Включение и выключение сетки В математической, физической и иной литературе при построении графиков в дополнение к разметке осей часто используют масштабную сетку. Команды grid позволяют задавать построение сетки или отменять это построение: · grid on -- добавляет сетку к текущему графику; · grid off -- отключает сетку; · grid -- последовательно производит включение и отключение сетки. Команды grid устанавливают свойства объектов XGrid, Ygrid и Zgrid для текущих осей. Ниже приведен пример из предшествующего раздела с добавлением в него команды grid: >> x=-5:0.1:5; >> plot(x, sin(x)); >> axis([-8 8 -1.5 1.5]) >> grid on Наложение графиков друг на друга Во многих случаях желательно построение многих наложенных друг на друга графиков в одном и том же окне. Для этого служит команда продолжения графических построений 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.
Страницы: 1, 2, 3
|