47953 (665960), страница 3
Текст из файла (страница 3)
Позиционирование текста с помощью мыши
Очень удобный способ ввода текста предоставляет команда gtext:
-
gtext('string') — задает выводимый на график текст в виде строковой константы ' string' и выводит на график, перемещаемый мышью маркер в виде крестика. Установив маркер в нужное место, достаточно щелкнуть любой кнопкой мыши для вывода текста;
-
gtext (С) — позволяет аналогичным образом разместить многострочную надпись из массива строковых переменных С.
Пример применения команды gtext:
>> x=-10:0.1:10;
>> plot(x,sin(x).^3)
>> gtext('Function sin(x)^3')
Установив перекрестие в нужное место графика, достаточно нажать любую клавишу или любую кнопку мыши, и на этом месте появится надпись
Вывод пояснений
Пояснение в виде отрезков линий со справочными надписями, размещаемое внутри графика или около него, называется легендой. Для создания легенды используются различные варианты команды legend:
-
legend(string1,,string2, string3,...) — добавляет к текущему графику легенду в виде строк, указанных в списке параметров;
-
legend (М) — размещает легенду, используя данные из строковой матрицы М;
-
legend OFF — устраняет ранее выведенную легенду;
-
legend (....Pos) — помещает легенду в точно определенное место, специфицированное параметром Pos:
-
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 устанавливает свойства цветов для текущего графика.