Лабораторная работа №3 Графика в matlab. Двумерная и трёхмерная графика. Интерполяции и аппроксимации данных


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



бет2/10
Дата24.05.2023
өлшемі1,85 Mb.
#96609
түріЛабораторная работа
1   2   3   4   5   6   7   8   9   10
Байланысты:
Занятие3 130329 (1)

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



Цвет

Тип маркера

1

2

y

Желтый

.

Точка

m

Розовый

o

Кружок

c

Голубой

x

Крестик

r

Красный

+

Знак плюс

g

Зеленый

*

Звездочка

Таблица 3.1 (окончание)



1

2

b

Синий

s

Квадрат

w

Белый

d

Ромб

k

Черный

v

Треугольник вершиной вниз

Тип линии

^

Треугольник вершиной вверх

-

Сплошная

<

Треугольник вершиной влево

:

Пунктирная

>

Треугольник вершиной вправо

-.

Штрих-пунктирная

p

Пятиконечная звезда

--

Штриховая

h

Шестиконечная звезда

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





достаточно выполнить последовательность команд (рис. 3.3):


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


>> y1=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)

Рис. 3.3

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


>> x=[x1 x2 x3];


>> y=[y1 y2 y3];
>> plot(x,y).

Несложно догадаться, как построить график параметрически заданной функции, используя то обстоятельство, что plot отображает зависимость одного вектора от другого. Пусть требуется получить график астроиды: x(t)=cos3t, y(t)=sin3(t), t [0, 2]. Следует задать вектор t, затем в векторы x, y занести значения x(t), y(t) и воспользоваться plot для отображения зависимости y от x (рис. 3.4):


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


>> x=cos(t).^3;
>> y=sin(t).^3;
>> plot(x,y).

Рис. 3.4

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


>> t = 0:.01:2*pi;


>>x = cos(2*t).*(cos(t).^2);
>>y = sin(2*t).*(sin(t).^2);
>>comet(x,y);.



Рис. 3.5
Вызов функции comet3(x,y) приводит к появлению пространственного графического окна, на осях которого рисуется перемещение точки в виде движения кометы с хвостом (рис. 3.6):


>> t = -10*pi:pi/250:10*pi;


>>comet3((cos(2*t).^2).*sin(t),(sin(2*t).^2).*cos(t),t);.



Рис. 3.6

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


  • loglog (логарифмический масштаб по обеим осям);

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

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

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

>>x=0:0.01:20;


>>y1=200*exp(-0.05*x).*sin(x);
>>y2=0.8*exp(-0.5*x).*sin(10*x);
>>plotyy(x,y1,x,y2).



Рис. 3.7. Функция plotyy


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


>> title('Результаты эксперимента')


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


–1 – вне графика в правом верхнем углу графического окна;
0 – выбирается лучшее положение в пределах графика так, чтобы как можно меньше перекрывать сами графики;
1 – в верхнем правом углу графика (это положение используется по умолчанию);
2 – в верхнем левом углу графика;
3 – в нижнем левом углу графика;
4 – в нижнем правом углу графика.
Функции xlabel и ylabel предназначены для подписей к осям, их входные аргументы также заключаются в апострофы.
Обратимся теперь к визуализации векторных и матричных данных. Самый простой способ отображения векторных данных состоит в использовании функции plot с вектором в качестве входного аргумента. При этом получающийся в виде ломаной линии график символизирует зависимость значений элементов вектора от их индексов. Второй дополнительный аргумент может определять цвет, стиль линии и тип маркеров, например: 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 (рис. 3.8):

>> x=[0.3 2 1.4 0.5 0.9];


>> [m,k]=max(x);
>> v=zeros(size(x));
>> v(k)=1;
>> pie(x,v)



Рис. 3.8

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

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


Функции bar и pie имеют аналоги:


barh – построение столбцевой диаграммы с горизонтальным расположением столбцов;
bar3, pie3 – построение объемных диаграмм.
В прикладных расчётах часто встречаются графики, именуемые столбцовыми диаграммами, отражающие содержание некоторого вектора V. При этом каждый элемент вектора представляется столбцом, высота которого пропорциональна значению элемента. Столбцы нумеруются и масштабируются по отношению к максимальному значению наиболее высокого столбца. Выполняет построение такого графика команда bar(V) (рис. 3.9).



Рис. 3.9. Построение столбцовой диаграммы значений элементов вектора


Столбцовые диаграммы – лишь один из многих типов графиков, которые может строить система MATLAB. Особенно часто столбцовые диаграммы используются при представлении данных финансово-экономических расчётов. Рис. 3.9 дает также представление о меню Tools (Инструменты) окна графики. Нетрудно заметить, что кроме возможности вывода инструментальной панели здесь имеется целый ряд других команд. Это, например, команды вывода свойств графических объектов, изменения масштаба графика, добавления осей и т.д.


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

>> x=randn(1,10000);


>> int=[-2:0.5:2];
>> n=histc(x,int);
>> bar(int,n,'histc').



Рис. 3.10.




Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет