3. Графики дискретных отсчетов функции
В сопротивлении материалов и строительной механике принято графики параметров напряженно-деформированного состояния закрашивать (штриховать). Для построения подобных графиков используется команда stem( … ).
stem(x, y) – строит график с закрашенными частями между нулевой линией и кривой у = f(x).
stem( … , LINESPEC ) – аналогична команде stem(x, y), но имеет спецификацию линий LINESPEC , подобную строковой константе s команды plot(х, у, s).
Stem( … , filled ) – строит график функции у = f(x) с закрашенными маркерами.
>> stem(x,y3)
Включение и выключение масштабной сетки
При построении графиков наряду с разметкой осей часто необходимо иметь масштабную сетку. Команды grid позволяют управлять этим процессом. Если после команды построения графиков добавить команду включения или выключения масштабной сетки, то можно получить график с требуемым видом:
grid on – добавляет сетку к текущему графику;
grid off – отключает сетку;
grid – последовательно производит включение и отключение сетки.
Несколько графиков в одной системе координат
2)>> x=0:0.1:10;
>> y1=sin(x);y2=cos(x);y3=sin(x)./x;
>> plot(x,y1,x,y2,x,y3)
>> plot(x,y1,'b-',x,y2,'go',x,y3,'rx')
>> 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,'-*',x,y3,'--ok')
Логарифмический масштаб
>> x=logspace(-1,3);
>> loglog(x,exp(x)./x)
>> grid on
>> x=0:0.5:10;
>> semilogy(x,exp(x))
>> grid on
FPLOT
fplot: fplott'f(x)'. [xmin xmax]
1) >> fplot('sin(1 ./ x)', [0.01 0.1],1e-3)
2) >> fplot('[tan(x),sin(x),cos(x)]',2*pi*[-1 1 -1 1])
3)>> f = @(x)abs(exp(-j*x*(0:9))*ones(10,1));
>> fplot(f,[0 2*pi])
BAR
bar(x, Y) — строит столбцовый график элементов вектора Y (или группы столбцов для матрицы Y) со спецификацией положения столбцов, заданной значениями элементов вектора х, которые должны идти в монотонно возрастающем порядке;
bar(Y) — строит график значений элементов матрицы Y так же, как указано выше, но фактически для построения графика используется вектор х=1:m;
barU.Y,WIDTH) или BAR(Y,WIDTH) — команда аналогична ранее рассмотренным, но со спецификацией ширины столбцов (при WIDTH > 1 столбцы в одной и той же позиции перекрываются). По умолчанию задано WIDTH = 0.8.
V=[0;2;5;7;9;-2;-4;-6;-13];
bar(V);
>> bar(rand(12.3),'stacked'), colormap(cool)
>> barh(rand(5.3),'stacked'), colormap(cool)
Hist - гистограммы
N=hist(Y) — возвращает вектор чисел попаданий для 10 интервалов, выбираемых автоматически. Если Y — матрица, то выдается массив данных о числе попаданий для каждого из ее столбцов;
N=hist(Y,M) — аналогична вышерассмотренной, но используется М интервалов (М — скаляр);
N=hist(Y.X) — возвращает числа попаданий элементов вектора Y в интервалы, центры которых заданы элементами вектора X;
[N,X]=HIST(...) — возвращает числа попаданий в интервалы и данные о центрах интервалов.
>> x=[1:1:20];
>> y=[2:1:35];
>> z=[x y];
>>hist(z);
>> x=-3:0.2:3;
>> y=randn(1000,1);
>>
hist(y,x)
Лестничные графики — команды stairs
stairs(Y) — строит лестничный график по данным вектора Y;
stairs(X.Y) — строит лестничный график по данным вектора Y с координатами х переходов от ступеньки к ступеньке, заданными значениями элементов вектора X;
stairs(...,S) — аналогична по действию вышеописанным командам, но строит график линиями, стиль которых задается строками S.
>> x=0:0.25:10;
>> stairs(x,x.^2);
Графики с зонами погрешности errorbar
errorbar(X,Y,L.U) — строит график значений элементов вектора Y в зависимости от данных, содержащихся в векторе X, с указанием нижней и верхней границ значений, заданных в векторах L и U;
errorbar(X,Y,E) Herrorbar(Y.E) —строит графики функции Y(X) с указанием этих границ в виде [Y-E Y+E], где Е — погрешность;
errorbar(..., 'LineSpec') — аналогична описанным выше командам, но позволяет строить линии со спецификацией 'LineSpec', аналогичной спецификации, примененной в команде plot.
>> x=2:0.1:3;
>> y=erf(x);
>> e=rand(size(x))/10;
>> errorbar(x,y,e)
Графики в полярной системе координат
polarCTHETA, RHO) — строит график в полярной системе координат, представляющий собой положение конца радиус-вектора с длиной RHO и углом ТНЕТА;
polarCTHETA,RHO.S) — аналогична предыдущей команде, но позволяет задавать стиль построения с помощью строковой константы S по аналогии с командой plot.
>> t=0:pi/50:2*pi;
>> polar(t,sin(5*t))
Построение векторов
>> z1=-1+2*i;
>> z2=-2-3*i;
>> z3=2+3*i;
>> z4=5+2*i;
>> z=[z1,z2,z3,z4];
>> compass(z);
Представление нескольких графиков в одном окне
Иногда необходимо в одном окне поместить несколько графиков без наложения их друг на друга. Особенно удобно такое представление при построении эпюр напряженно-деформированного состояния элементов стержневых и пластинчатых систем. Для этого служит команда subplot, которую необходимо записать перед командой plot.
subplot (m, n, p) – разбивает графическое окно на m n подокон, при этом m – число подокон по горизонтали, п – число окон по вертикали, р – номер подокна, в которое будет выводиться текущий график.
>> x = 0.2*pi:0.01*pi:2*pi;
>> y1 = sin(x); y2=sin(x).^2; y3=sin(x).^3;
>> y4=cos(x).^2;
>> subplot(2,2,1);
>> plot(x,y1)
>> grid on
>> subplot(2,2,2)
>> plot(x,y2)
>> grid on
>> subplot(2,2,3)
>> plot(x,y3)
>> grid on
>> subplot(2,2,4)
>> plot(x,y4)
>> grid on
Движение точки в пространстве
comet3(Z) — отображает движение точки с цветным «хвостом» по трехмерной кривой, определенной массивом Z;
comet3 (X.Y.Z) — отображает движение точки «кометы» по кривой в пространстве, заданной точками [X(i),Y(i),Z(i)];
comet3(X,Y,Z,p) — аналогична предшествующей команде с заданием длины «хвоста кометы» как p*1ength(Z). По умолчанию параметр р равен 0.1.
>> x=0:0.01:15;
>> comet(x,sin(x) )
>> W=0:pi/500:10*pi;
>> comet3(cos(W))
Пространственные поверхности
Создание массивов данных для трехмерной графики
Трехмерные поверхности описываются функцией двух переменных z = f(x, y). Построение трехмерных графиков требует определение для х и у двухмерных массивов – матриц. Для создания таких массивов служит функция meshgrid, которая записывается следующим образом:
-
[X, Y] = meshgrid(x, y) ;
В основном она используется совместно с функциями построения графиков трехмерных поверхностей. Функция преобразует область заданную векторами х и у, в массивы X и Y, которые могут быть использованы для вычисления функции двух переменных и построения трехмерных графиков. Строки выходного массива Х являются копиями вектора х, а столбцы Y – копиями вектора у.
Пример:
-
>> [X Y]
=
mesh grid (4 : 7 , 9 : 13)
Х
=
4 5 6 7
4 5 6 7
4 5 6 7
4 5 6 7
4 5 6 7
Y
=
9 9 9 9
10 10 10 10
11 11 11 11
12 12 12 12
13 13 13 13
Приведем еще пример применения функции meshgrid:
>> [X Y] = meshgrid ( 1 : 0.1 : 1, 1 : 0.1 : 1);
Такой вызов функции создает опорную плоскость для построения трехмерной поверхности при изменении х и у от – 1 до 1 с шагом 0.1.
