Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MATLAB.doc
Скачиваний:
202
Добавлен:
13.11.2018
Размер:
1.36 Mб
Скачать

4.1.3. Другие графические функции

Функция bar (столбцовая диаграмма):

bar(y,<ширина>,S) – вывод каждого элемента вектора Y в виде столбца; по умолчанию его ширина 0.8, но может быть изменена; S – строковый аргумент;

bar(x,y,<ширина>,S)зависимость y(x);

barh – аналогичная функция, но столбцы выводит в горизонтальной ориентации.

В случае двухмерного массива может быть введен параметр <стиль> – ‘group’ или ‘stack’:

» x=-4:0.1:4; y=exp(-x.^2);

» bar(y)

» bar(y,0.4)

» bar(x,y,0.4)

» barh(x,y,0.4)

Пример построения двухмерной диаграммы:

» y=round(rand(5,4)*10);

» bar(y,'group')

» bar(y,'stack')

» barh(y,'group')

» barh(y,'stack')

Функция stem (дискретный график):

stem(y), stem(x,y) – элементы выводятся в виде вертикальных линий с маркером на конце (по умолчанию – кружок);

stem(…,<маркер>,S) – изменение типа маркера; S – строковый параметр (см. выше);

stem(…,’fill’) – закрашивание маркера (цвет назначается обычным способом).

» x=pi*[-2:0.05:2]; y=sin(x);

» stem(y), grid

» stem(x,y), grid

» stem(x,y,'fill'), grid

» stem(x,y,'*r'), grid

Функция polar (диаграмма в полярных координатах):

polar(phi,rho,S)зависимость радиуса-вектора (rho) от полярного угла (phi).

Построим график затухающей синусоиды сначала в прямоугольных, а затем в полярных координатах:

» phi=pi*[0:0.02:6]; rho=exp(-0.2*phi).*sin(3*phi); plot(phi,rho), grid, pause,

polar(phi,rho)

Здесь использован оператор pause (после вывода первого графика необходимо нажать клавишу Enter).

Функция comet («кометообразный» график). Система MATLAB дает возможность проследить процесс построения графика во времени, для чего используют функцию comet(<x>,y,<p>), которая отображает движение рисующей точки по траектории заданного графика; необязательный параметр р задает длину своеобразного «хвоста» графика (по умолчанию р = 0,10). Используем функцию, заданную в примере, приведенном выше:

» comet(phi,rho)

» comet(phi,rho,0.5)

Заметим, чем меньше шаг независимой переменной, тем медленнее (и нагляднее) происходит процесс построения графика. Введем новый шаг – 0,01 и сравним ход построения графика.

Весьма эффектно выглядит построение «ко­ме­то­образного» пространственного графика, запускаемого с помощью демонстрационной программы lorenz.

Функция pie(«пирог») (круговая секторная диаграмма). Команда pie(y,v) отображает каждый элемент вектора в виде нормированного сектора диаграммы . В этой команде v – логический вектор, отделяющий () или не отделяющий () секторы, которым соответствуют ненулевые элементы.

Пример:

» y=5*rand(1,5);

» pie(y)

» v=[0 1 0 0 0]; pie(y,v)

При повторении команды генерируются разные диаграммы.

Если , то отображаются фактические значения элементов, и диаграмма получается незамкнутой. Это наглядно видно из следующего примера (выводятся как числовые значения элементов, так и соответствующие круговые диаграммы):

» for k=1:10, y=0.5*rand(1,4); pie(y), pause, end

Здесь использован цикл, тело которого заключено между служебными словами for и end; параметр цикла k задает число повторений вычислительной процедуры 2.

4.1.4. Дополнительные графические возможности

Для изменения масштаба по осям координат используют следующие функции: loglog(x,y) логарифмический по обеим осям; semilogx(x,y) – полулогарифмический (логарифмический по оси абсцисс и линейный – по оси ординат); semilogy(x,y) – логарифмический по оси ординат. Пример:

» x=pi*[0:0.05:6]; y=exp(-0.3*x).*abs(sin(x));

» plot(x,y), grid

» semilogx(x,y), grid

» semilogy(x,y), grid

» loglog(x,y), grid

Для изменения диапазонов значений x, y применяют функцию axis([xmin xmax ymin ymax]).

Продолжим предыдущий пример:

» plot(x,y), axis([0 2*pi 0 max(y)]), grid

» bar(x,y,0.1), axis([0 2*pi 0 max(y)]), grid

» bar(x,y,0.1), axis([0 2*pi 0 2*max(y)]), grid

Команда zoom on (отмена – zoom off) позволяет увеличивать отдельные участки графика с помощью мыши. Для этого участок выделяют прямоугольной рамкой при нажатой левой клавише мыши, а при отжатой участок отображается в графическом окне при соответствующих масштабах по осям. Однократный щелчок левой клавиши увеличивает масштаб всего графика, правой (или левой – при нажатой клавише Shift) – уменьшает его. Масштаб увеличения можно задать и более конкретно с помощью команды zoom(factor), например zoom(1.5). Возврат к исходному масштабу – двойным щелчком левой клавиши мыши или вводом команды zoom(1).

Упражнение. Построить график функции и провести масштабирование с помощью различных способов.

Многооконный режим вывода графических объектов на экран организуется с по­мощи процедуры subplot(m,n,p) (subplot(mnp), subplot mnp), которая разбивает графическое окно на подокон, где m – число подокон по вертикали (число строк), n – число подокон по горизонтали (число столбцов); p – номер текущего подокна. Для той же исходной зависимости можно организовать вывод графиков в четыре окна с соответ­ствующими поясняющими надписями по осям:

» subplot(221), plot(x,y), grid, xlabel('x'), ylabel('y')

» subplot(222), semilogx(x,y), grid, xlabel('logx'), ylabel('y')

» subplot(223), semilogy(x,y), grid, xlabel('x'), ylabel('logy')

» subplot(224), loglog(x,y), grid, xlabel('logx'), ylabel('logy')

Пример использования цикла:

» for k=1:4, y=rand*rand(1,6); subplot(2,2,k), pie(y), end

При повторном выполнении команды можно видеть, какую форму приобретает круговая диаграмма в зависимости от числовых значений элементов.

Упражнение. Вывести в несколько окон графики одной и той же функции в различном представлении (plot, bar, stem, polar) и варьировании масштабов по осям координат.

Команда gtext(‘text’) создает перекрестие, перемещаемое с помощью мыши. Если перекрестие расположено в нужной точке, щел­чком левой клавиши вставляют заданный текст в это место (в том числе и на «поля» графического окна).

Построим семейство экспонент и пометим первую (k = 1) и последнюю (k = 6) из них, а также вставим название:

» x=0:0.1:6; for k=1:6, y=1-exp(-k*x); plot(x,y), hold on, end, grid

» gtext('k=1'), gtext('k=6'), gtext(‘Экспоненты: y=1-exp(-kx)’), hold off

Команда legend используется для расшифровки обозначений на графиках: отображаются типы линий (в соответствии с последовательностью построения) и маркера, а также пояснительный текст. Синтаксис команды:

legend(<text1>,<text2>,…,<pos>),

где <text…>пояснения к отдельным графикам; posпараметр, задающий местоположение легенды в соответствии с табл. 4.1.

Таблица 4.1

Значение pos

Положение легенды

-1

Вне графика справа

0

«Наилучшее» (легенда перекрывает наименьшее число точек графиков)

1, 2, 3, 4

В соответствующих углах графика: в правом верхнем (по умолчанию), в левом верхнем, в нижнем левом и правом

[x,y]

По координатам нижнего левого угла легенды

Положение легенды можно изменять, перемещая ее мышью при нажатой левой клавише. Легенду удаляют с помощью команды legend off.

Пример:

» x=pi*[0:0.05:4];

» y1=sin(x); y2=0.5*cos(x);

» plot(x,y1,x,y2), grid

» legend('y1=sin(x)','y2=0.5cos(x)')

» xlabel('x'), ylabel('y1, y2')

Для управления цветовой палитрой используется команда colormap(C) (или colormap C), где С – матрица-палитра, сформированная из трех чисел, характеризующих интенсивность основных цветов (красного, зеленого и синего).

Ниже приведен перечень имен матрицы.

hsv – насыщенность основных цветов палитры;

hot – палитра черного, красного, желтого, белого цветов;

grayшкала оттенков серого цвета;

bone – серо-голубая палитра;

copper – линейная палитра с медными оттенками;

pink – пастельные оттенки розовой палитры;

white – палитра белого;

flag – палитра с чередованием красного, белого, синего и черного цветов;

lines – палитра, определяемая свойством ColorOrder;

colorcube – RGB-палитра с оттенками серого;

jet – вариант hsv-палитры;

prism – палитра цветов радуги (разложение белого цвета призмой);

cool – палитра с оттенками голубого и фиолетового цветов;

autumn – палитра с оттенками красного и желтого («осень»);

spring – палитра с оттенками желтого и фиолетового («весна»);

winter – палитра с оттенками голубого и зеленого («зима»);

summer – палитра с оттенками желтого и зеленого («лето»).

Например, команда colormap gray активизирует палитру оттенков серого цвета. По умолчанию используется палитра hsv.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]