Графика и визуализация данных

MatLab обладает широким набором средств для построения графиков функций одной и 2-ух переменных и отображения разных типов данных. Все графики выводятся в графические окна со своими меню и панелями инструментов. Вид графиков определяется аргументами графических команд и потом может быть изменен с помощью инструментов графического окна. Принципиально осознавать, что для Графика и визуализация данных построения графиков функций на некой области конфигурации аргументов следует вычислить значения функции в точках области, нередко для получения не плохих графиков следует использовать довольно много точек.

Разберем поначалу, как получить график функции одной переменной, например:

на отрезке . 1-ый шаг состоит в задании координат точек по оси абсцисс. Наполнение вектора x Графика и визуализация данных элементами с неизменным шагом с помощью двоеточия позволяет просто решить эту задачку. Дальше нужно поэлементно вычислить значения f (x) для каждого элемента вектора x и записать итог в вектор f. Для построения графика функции осталось использовать какую-либо из графических функций MatLab. Довольно универсальной графической функцией является plot. В Графика и визуализация данных самом ординарном случае она вызывается с 2-мя входными аргументами — парой x и f (т. е. plot выводит зависимость частей 1-го вектора от частей другого). Последовательность команд, приведенная ниже, приводит к возникновению графического окна Figure No.1 с графиком функции (рис. 4.1).

» x=[-2:0.05:2];

» f=exp(x).*sin(pi*x)+x.^2;

» plot(x,f Графика и визуализация данных)

Рис. 4.1

Тип полосы, цвет и маркеры определяются значением третьего дополнительного аргумента функции plot. Этот аргумент указывается в апострофах[1], к примеру, вызов plot(x,f,'ro:') приводит к построению графика красноватой пунктирной линией, размеченной круглыми маркерами. Направьте внимание, что абсциссы маркеров определяются значениями частей вектора x. Всего в дополнительном аргументе Графика и визуализация данных может быть заполнено три позиции, надлежащие цвету, типу маркеров и стилю полосы. Обозначения для их приведены в табл. 4.1. Порядок позиций может быть случайный, допустимо указывать только один либо два параметра, к примеру, цвет и тип маркеров. Поглядите на итог выполнения последующих команд: plot(x,f,'g'), plot Графика и визуализация данных(x,f,'ko'), plot(x,f,':').

Функция plot имеет довольно универсальный интерфейс, она, а именно, позволяет показывать графики нескольких функций на одних осях. Пусть требуется вывести график не только лишь f (x), да и на отрезке [-2, 2]. Поначалу нужно вычислить значения g(x):

» g=exp(-x.^2).*sin(5*pi*x);

а Графика и визуализация данных потом вызвать plot, указав через запятую пары x, f и x, g и, при желании, характеристики каждой из линий:

» plot(x,f,'ko-', x,g,'k:')

Таблица 4.1.

Сокращения для цвета, типа маркеров и стиля линий

Цвет Тип маркера
y желтоватый . точка
m розовый o кружок
c голубой x крестик
r Графика и визуализация данных красноватый + символ плюс
g зеленоватый * звездочка
b голубий s квадрат
w белоснежный d ромб
k темный v треугольник верхушкой вниз
Тип полосы ^ треугольник верхушкой ввысь
- сплошная < треугольник верхушкой на лево
: пунктирная > треугольник верхушкой на право
-. штрих-пунктирная p пятиконечная звезда
-- штриховая h шестиконечная звезда

Допускается построение случайного числа графиков Графика и визуализация данных функций, характеристики всех линий могут быть разными. Не считая того, области построения каждой из функций не непременно должны совпадать, но тогда следует использовать различные вектора для значений аргументов и вычислять значения функций от соответственных векторов. Для получения графика кусочно-линейной функции:

довольно выполнить последовательность команд:

» x1=[-4*pi:pi/10:-pi];

» y Графика и визуализация данных1=sin(x1);

» x2=[-pi:pi/30:0];

» y2=3*(x2/pi+1).^2;

» x3=[0:0.02:5];

» y3=3*exp(-x3)

» plot(x1,y1,x2,y2,x3,y3)

Заметьте, что графики веток функции показываются разными цветами. Можно было поступить и по-другому, а конкретно: после наполнения x1, y1, x2, y2, x3 и y3 собрать вектор x для значений аргумента Графика и визуализация данных и вектор y для значений y(x) и выстроить зависимость y от x:

» x=[x1 x2 x3];

» y=[y1 y2 y3];

» plot(x,y)

Нетрудно додуматься, как выстроить график параметрически данной функции, используя то событие, что plot показывает зависимость 1-го вектора от другого. Пусть требуется получить график астроиды Графика и визуализация данных: , , . Следует задать вектор t, потом в векторы x, y занести значения x(t), y(t) и пользоваться plot для отображения зависимости y от x:

» t=[0:pi/20:2*pi];

» x=cos(t).^3;

» y=sin(t).^3;

» plot(x,y)

Функция comet позволяет проследить за движением точки по линии движения параметрически Графика и визуализация данных данной полосы. Вызов comet(x,y) приводит к возникновению графического окна[2], на осях которого рисуется перемещение точки в виде движения кометы с хвостом. Управление скоростью движения осуществляется конфигурацией шага при определении вектора значений параметра.

В MatLab имеются графические функции, созданные для отображения графиков в логарифмическом и полулогарифмическом масштабах:

§ loglog (логарифмический Графика и визуализация данных масштаб по обеим осям);

§ semilogx (логарифмический масштаб только по оси абсцисс);

§ semilogy (логарифмический масштаб только по оси ординат).

Входные аргументы этих функций задаются так же, как и при использовании plot. Для сопоставления поведения 2-ух функций со значениями различных порядков комфортно использовать plotyy. Функция plotyy вызывается от 2-ух пар входных аргументов (векторов Графика и визуализация данных) и приводит к возникновению 2-ух линий графиков, каждой из которых отвечает своя ось ординат.

Графики оформляются в MatLab особыми командами и функциями. Сетка наносится на оси командой grid on, а убирается с помощью grid off. Заголовок располагается в графическом окне средством функции title, входным аргументом которой является Графика и визуализация данных строчка, заключенная в апострофы:

» title('Результаты опыта')

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

–1 — вне графика в правом верхнем Графика и визуализация данных углу графического окна;

0 — выбирается наилучшее положение в границах графика так, чтоб как можно меньше перекрывать сами графики;

1 — в верхнем правом углу графика (это положение употребляется по дефлоту);

2 — в верхнем левом углу графика;

3 — в нижнем левом углу графика;

4 — в верхнем левом углу графика.

Функции xlabel и ylabel созданы для подписей Графика и визуализация данных к осям, их входные аргументы так же заключаются в апострофы.

Обратимся сейчас к визуализации векторных и матричных данных. Самый обычный метод отображения векторных данных состоит в использовании функции plot с вектором в качестве входного аргумента. При всем этом получающийся в виде ломаной полосы график символизирует зависимость значений частей Графика и визуализация данных вектора от их индексов. 2-ой дополнительный аргумент может определять цвет, стиль полосы и тип маркеров, к примеру: plot(x,'ko'). Вызов функции plot от матрицы приводит к нескольким графикам, их число совпадает с числом столбцов матрицы, а любой из их является зависимостью частей столбца от их строчных индексов. Цвет Графика и визуализация данных и стиль линий и тип маркеров сходу для всех линий так же определяется вторым дополнительным аргументом.

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

» x=[0.7 2.1 2.5 1.9 0.8 1.3];

» bar(x)

Дополнительный числовой аргумент bar показывает на ширину столбцов (по дефлоту он равен Графика и визуализация данных 0.8), а значения огромные единицы, к примеру bar(x,1.2), приводят к частичному перекрытию столбцов. Указание матрицы во входном аргументе bar приводит к построению групповой диаграммы, число групп совпадает с числом строк матрицы, а снутри каждой группы столбиками показываются значения частей строк.

Радиальные диаграммы векторных данных получаются при помощи функции Графика и визуализация данных pie, которая имеет некие особенности по сопоставлению с bar. Различаются два варианта:

1) если сумма частей вектора больше либо равна единицы, то выводится полная радиальная диаграмма, площадь каждого её сектора пропорциональна величине элемента вектора;

2) если сумма частей вектора меньше единицы, то результатом является неполная радиальная диаграмма, в какой площадь каждого сектора пропорциональна Графика и визуализация данных величине частей вектора, в предположении что площадь всего круга равна единице.

Сравните, к примеру pie([0.1 0.2 0.3]) и pie([1 2 3]). Можно отделить некие секторы от всего круга диаграммы, зачем следует вызвать pie со вторым аргументом — вектором той же длины, что начальный. Ненулевые элементы второго вектора соответствуют отделяемым секторам. Последующий пример Графика и визуализация данных указывает, как отделить от диаграммы сектор, соответственный большему элементу вектора x:

» x=[0.3 2 1.4 0.5 0.9];

» [m,k]=max(x);

» v=zeros(size(x));

» v(k)=1;

» pie(x,v)

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

» pie([2400 3450 1800 5100],{'Март','Апрель','Май','Июнь'})

Функции bar и pie имеют Графика и визуализация данных аналоги:

§ barh — построение столбцевой диаграммы с горизонтальным расположением столбцов;

§ bar3, pie3 — построение больших диаграмм.

При обработке огромных массивов векторных данных нередко требуется получить информацию о том, какая часть данных находится в том либо ином интервале. Функция hist создана для отображания гистограммы данных и нахождения числа данных в интервалах. Входным Графика и визуализация данных аргументом hist является вектор с данными, а выходным — вектор, содержащий количество частей, попавших в любой из интервалов. По дефлоту берется 10 равных интервалов. К примеру, вызов hist(randn(1,5000)) приводит к возникновению на дисплее гистограммы данных, распределенных по нормальному закону, а n=hist(randn(1,5000)) к наполнению вектора n длины 10 (при всем этом Графика и визуализация данных гистограмма не строится). Число интервалов указывается во 2-м дополнительном аргументе hist. Можно задать интервалы, использовав в качестве второго аргумента не число, а вектор, содержащий центры интервалов. Более комфортно задавать интервалы не центрами, а границами. В данном случае требуется поначалу найти количество частей в интервалах с помощью Графика и визуализация данных функции histc, а потом применить bar со особым аргументом 'histc', к примеру:

» x=randn(1,10000);

» int=[-2:0.5:2];

» n=histc(x,int);

» bar(int,n,'histc')

Визуализация функций 2-ух переменных в MatLab может быть осуществлена несколькими методами, но они все подразумевают однотипные подготовительные деяния. Разглядим тут только построение графиков функций 2-ух переменных на Графика и визуализация данных прямоугольной области определения[4]. Представим, что требуется получить поверхность функции на прямоугольнике , . 1-ый шаг состоит в задании сетки на прямоугольнике, т. е. точек, которые будут употребляться для вычисления значений функции. Для генерации сетки предусмотрена функция meshgrid, вызываемая от 2-ух входных аргументов — векторов, задающих разбиения по осям x и y Графика и визуализация данных. Функция meshgid возвращает два выходных аргумента, являющиеся матрицами.

» [X,Y]=meshgrid(-1:0.1:1,0:0.1:2);

Матрица X состоит из схожих строк, равных первому входному аргументу — вектору в meshgrid, а матрица Y — из схожих столбцов, совпадающих со вторым вектором в meshgrid. Такие матрицы оказываются необходимыми на втором шаге при заполнении матрицы Z, каждый элемент которой Графика и визуализация данных является значением функкции z(x,y) в точках сетки. Нетрудно осознать, что внедрение поэлементных операций при вычислении функции z(x,y) приводит к требуемой матрице:

» Z=exp(-X).*sin(pi*Y);

Для построения графика z(x,y) осталось вызвать подходящую графическую функцию, например:

» mesh(X,Y,Z)

На дисплее возникает Графика и визуализация данных графическое окно, содержащее каркасную поверхность исследуемой функции (рис. 4.2). Направьте внимание, что цвет поверхности соответствует значению функции.

Рис. 4.2.

Команда colorbar приводит к отображению в графическом окне столбика, показывающего соотношение меж цветом и значением z(x,y). Цветовые палитры графика можно изменять, пользуясь функцией colormap, к примеру colormap(gray) показывает график в Графика и визуализация данных колерах серго цвета. Некие цветовые палитры приведены ниже:

§ bone — похожа на гамму gray, но с легким цветом голубого цвета;

§ colorcube — каждый цвет меняется от темного к ярчайшему;

§ cool — цвета голубого и пурпурового цветов;

§ copper — цвета медного цвета;

§ hot — плавное изменение: черный-красный-оранжевый-желтый-белый;

§ hsv — плавное Графика и визуализация данных изменение (как цвета радуги);

§ jet — плавное изменение: синий-голубой-зеленый-желтый-красный;

§ spring — цвета пурпурового и желтоватого;

§ summer — цвета зеленоватого и желтоватого;

§ winter — цвета голубого и зеленоватого;

MatLab предоставляет целый набор графических функций для визуализации функций 2-ух переменных, посреди их:

§ surf — залитая цветом каркасная поверхность;

§ meshc, surfc — поверхности с Графика и визуализация данных линиями уровня на плоскости xy;

§ contour — тонкий график с линиями уровня;

§ contourf — залитый цветом тонкий график с линиями уровня;

§ contour3 — поверхность, составленная из линий уровня;

§ surfl — освещенная поверхность

Все перечисленные функции допускают то же самое воззвание, что и mesh, к примеру:

» sufr(X,Y,Z)

» contourf(X,Y,Z)

Остановимся подробнее на Графика и визуализация данных нескольких вопросах. 1-ый из их: как изменять установки, определённые по дефлоту, при отображении функций линиями уровня с помощью contour, contourf и contour3. Число линий уровня задается в четвертом дополнительном аргументе, к примеру:

» contourf(X,Y,Z,10)

Заместо числа линий уровня можно указать в векторе те значения z(x,y Графика и визуализация данных), для которых требуется выстроить полосы уровня:

» contour(X,Y,Z,[-0.51 -0.25 -0.01 0.89])

Несколько труднее нанести подписи с подходящим значением z(x,y) к каждой полосы уровня. Для этого придется вызвать contour с 2-мя выходными аргументами, 1-ый из их — матрица с информацией о положении линий уровня, а 2-ой — вектор с Графика и визуализация данных указателями[5] на полосы. Приобретенные переменные следует использовать в качестве входных аргументов функции clabel:

» [CMatr, h] = contour(X, Y, Z,[-0.51 -0.25 -0.01 0.89]);

» clabel(CMatr, h)

Залитые цветом каркасные поверхности, построенные с помощью sufr и surfc, имеют неизменный цвет в границах каждой ячейки. Команда shading interp, вызываемая после surf и surfc, служит для плавного Графика и визуализация данных конфигурации цвета в границах ячеек и скрытия линий сетки на поверхности. Если лучше убрать сетку и сохранить неизменный цвет ячеек, то довольно использовать shading flat, а shading faceted присваивает графику прежний вид.

Графические функции по дефлоту располагают поверхность так, что наблюдающий лицезреет ее часть под неким углом, а другая — укрыта Графика и визуализация данных от взгляда. Положение наблюдающего определяется 2-мя углами: азимутом (AZ) и углом возвышения (EL). Азимут отсчитывается от оси, обратной y, а угол возвышения — от плоскости xy (см. рис. 4.3, на котором положительные направления отсчета углов обозначены стрелками).

Рис. 4.3.

Оглядеть поверхность со всех боков позволяет функция view. Вызов функции view с Графика и визуализация данных 2-мя выходными аргументами и без входных дает возможность найти текущее положение наблюдающего (углы выводятся в градусах):

» [AZ, EL]=view

AZ =

-37.5000

EL =

Эти значения MatLab употребляет по дефлоту при построении трехмерных графиков. Для задания положения наблюдающего следует указать азимут и угол возвышения (в градусах) в качестве входных аргументов view, к Графика и визуализация данных примеру: view(0,90) указывает вид на график сверху. Перед поворотом графика целенаправлено расставить обозначения к осям, используя, как и для двумерных графиков xlabel и ylabel, и zlabel для подписи к вертикальной оси. Функция view допускает еще несколько вариантов вызова:

§ view(3) — возврат к стандартным установкам;

§ view(x,y,z) — помещение Графика и визуализация данных наблюдающего в точку с координатами x, y и z.

Освещенная поверхность строится с помощью функции surfl, которая позволяет получить приятное представление о поведении исследуемой функции. Следует учитывать, что лучше соединять вызов surfl с командой shading interp и палитрой цветов, содержащей огромное количество цветов (gray, copper, bone, winter и т. д.), так Графика и визуализация данных как поверхность обладает качествами рассеивания, отражения и поглощения света, исходящего от некого источника. Положение источника можно задавать в четвертом дополнительном аргументе surfl, при этом или вектором из 2-ух частей (азимут и угол возвышения источника), или вектором из 3-х частей (положение источника света в системе координат осей), к примеру: surfl Графика и визуализация данных(X,Y,Z,[20 80]) либо surfl(X,Y,Z,[6 8 11]).

Разберем сейчас работу с несколькими графиками. 1-ый вызов хоть какой графической функции приводит к возникновению на дисплее графического окна Figure No. 1, содержащего оси с графиком. Но, при последующих воззваниях к графическим функциям прежний график теряется, а новый выводится в Графика и визуализация данных тоже самое окно. Команда figure создана для сотворения пустого графического окна. Если требуется получить несколько графиков в различных окнах, то перед вызовом графических функций следует прибегать к figure. Графические окна при всем этом нумеруются так: Figure No. 2,Figure No. 3и т. д.

Каждое окно имеет свои оси, при наличии нескольких пар осей Графика и визуализация данных (в одном окне либо в различных) вывод графиков делается в текущие оси. Последняя сделанная пара осей является текущей. Для того, чтоб избрать текущие оси из нескольких имеющихся, довольно щелкнуть по ним правой кнопкой мыши перед вызовом графической функции. Вероятна и оборотная ситуация, когда в процессе работы требуется добавлять Графика и визуализация данных графики к уже имеющимся на неких осях. В этой ситуации перед добавлением графика следует выполнить команду hold on. Для окончания такового режима довольно пользоваться hold off.

В одном графическом окне можно расположить несколько осей со своими графиками. Функция subplot создана для разбиения окна на части и определения текущей из Графика и визуализация данных их. Представим, что требуется вывести графики на 6 пар осей в одно графическое окно (две по вертикали и три по горизонтали). Сделайте графическое окно с помощью figure и сделайте команду:

» subplot(2,3,1)

В левом верхнем углу окна появились оси. 1-ые два аргумента в subplot указывают на общее число пар осей по вертикали Графика и визуализация данных и горизонтали, а последний аргумент значит номер данной пары осей. Нумерация идет слева вправо, сверху вниз. Используйте subplot(2,3,2), … , subplot(2,3,6) для сотворения других пар осей[6]. Вывод хоть какой из графических функций можно навести в нужные оси, указав их с помощью subplot(2,3,k), к примеру:

» subplot(2,3,3)

» bar([1.2 0.3 2.8 0.9])

» subplot Графика и визуализация данных(2,3,6)

» surf(X,Y,Z)

Задания для самостоятельной работы

Выстроить графики функций одной переменной на обозначенных интервалах. Вывести графики разными методами:

§ в отдельные графические окна;

§ в одно окно на одни оси;

§ в одно окно на отдельные оси.

Дать заглавия, расположить подписи к осям, легенду, использовать разные цвета, стили линий и типы маркеров Графика и визуализация данных, нанести сетку.

Варианты

1. ; ; .

; ; .

2. ; ; .

; ; .

3. ; ; .

; ; .

4. ; ; .

; ; .

5. ; ; .

; ; .

6. ; ; .

; ; .

7. ; ; .

; ; .

8. ; ; .

; ; .

9. ; ; .

; ; .

10. ; ; .

; ; .

Задания для самостоятельной работы

Выстроить график кусочно-линейной функции, показать ветки различными цветами и маркерами.

1. 2.

3. 4.

5. 6.

7. 8.

9. 10.

Задания для самостоятельной работы

Выстроить график параметрически данной функции, используя plot и comet.

Варианты

1. ; . 2. ; .

3. ; . 4. ; .

5. ; . 6. ; .

7. ; . 8. ; .

9. ; . 10. ; .

Задания для самостоятельной работы

Визуализировать функцию 2-ух переменных на прямоугольной области определения разными методами:

§ каркасной поверхностью;

§ залитой цветом каркасной поверхностью;

§ промаркированными линиями Графика и визуализация данных уровня (без помощи других избрать значения функции, отображаемые линиями уровня);

§ освещенной поверхностью.

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

Варианты

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.


[1] Он является строчкой, о представлении строк и операциях с ними написано Графика и визуализация данных в § 7.

[2] Графическое окно должно находится поверх других окон для наблюдения за движением с самого начала.

[3] 2-ой аргумент является массивом ячеек, о массивах ячеек написано в § 8.

[4] MatLab поддерживает построение графиков функций 2-ух переменных не только лишь на прямоугольной, да и на случайной многоугольной области определения.

[5] MatLab является объектно-ориентированной системой Графика и визуализация данных, все графические объекты (окна, оси, полосы, поверхности и т. д.) выстроены в определённой иерархии и с каждым объектом связывается некий указатель. В этом случае, каждой полосы уровня ставится в соответствие элемент вектора h.

[6] Предварительное создание всех пар осей не является неотклонимым. Допустимо использовать subplot конкретно перед вызовом графической функции.


grafik-vipolneniya-i-sdachi-zadanij.html
grafik-vipolneniya-rabot-forma-3-tehnicheskoe-zadanie-7-proekt-dogovora-9-poryadok-provedeniya-zaprosa-predlozhenij.html
grafik-vipuska-gazeti-novostej.html