Лекция 2
MATLAB. работа с графическими возможностями. Построение графиков на плоскости и в пространстве
Для построения графика функции одной переменной используется
команда:
>>plot (x,y)
где x - вектор значений аргументов, y - вектор соответствующих значений функции.

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

  • перечислить в одной команде все ряды данных plot(x1,y1,x1,y2,…)
  • заблокировать режим создания нового окна с помощью процедуры hold on, отключить который можно с помощью процедуры hold off.
plot(x1,y2)
hold on
plot (x2,y2)
hold off

В команде plot(x1,y1,’style1’,x1,y2,’style2’,…) вместо параметров style в
одинарных кавычках указываются дополнительные параметры для оформления линий:
  • цвет линии (табл. 1);
  • тип маркеров (табл. 2);
  • стиль линии (табл. 3).
Можно также отдельно настраивать различные атрибуты маркера,линии, заливки и т.д. см справку по функциям plot

График можно оформить:



Пара Name, Value определяет значение свойств легенды.
Свойство 'Location' определяет положение легенды ('north', 'south', 'east', 'west', и т.д )
свойство 'Orientation' ориентацию ('vertical' или 'horizontal' и т.д.).


Пример:
x=0:pi/10:2*pi;
y1=sin(x);
y2=cos(x);
y3=sin(x)+cos(x);
plot(x,y1,':or',x,y2,'--*g',x,y3,'-.xb')
legend('sin(x)','cos(x)','sin(x)+cos(x)','Location','southoutside','Orientation','horizontal')
title('Graph')
xlabel('X')
ylabel('Y')
grid on
В некоторых случаях совмещение двух графиков в одном окне может
вызвать проблемы, так как могут не совпадать диапазоны аргументов или значений.

которая производит двойную оцифровку осей.

Другие типы графиков
Если в одном окне необходимо отобразить несколько графиков. Для этого используется функция
subplot(), которая позволяет разделить область рисования на несколько прямоугольных областей равного размера:

Основной синтаксис:
subplot(m, n, p)
Где:
  • m - количество строк в сетке графиков
  • n - количество столбцов в сетке
  • p - номер текущего подграфика (счет слева направо, сверху вниз)
Глобальный заголовок:
sgtitle('заголовок для графического окна');


Для построения графиков функций, заданных в полярной системе
координат, используется процедура polarplot().
polarplot(phi,ro) где phi – угол, а ro – расстояние.
Единицы измерения значений ординат и абсцисс далеко не всегда
соответствуют друг другу и для создания более обозримого графика вдоль одной или обеих осей приходится выбирать логарифмический масштаб. Для построения таких графиков используются процедуры:

  • loglog(x,y) (логарифмический масштаб по обеим осям),
  • semilogx(x,y) (логарифмически масштаб по оси х)
  • semilogy(x,y) (логарифмический масштаб по оси у).

Процедура fplot() строит график функции y=f(x) без предварительного
вычисления векторов х и у. Формат вызова этой функции записывается следующим образом: fplot (@x f(x), [limits])

В первом случае первым аргументом является указатель на переменную и функция. Второй аргумент limits представляет двухкомпонентный вектор [xmin xmax]. Особенностью данной функции является то, что в местах резкого изменения значения функции значение аргумента х выбираются с более мелким шагом.

Для построения трехмерных графиков используются функции

mesh(X,Y,Z) и surface(X,Y,Z).
При этом mesh() создает каркасную поверхность, где цветные линии соединяют только заданные точки, а функция surface() вместе с линиями отображает в цвете и саму поверхность.

Для отображения функции двух переменных z=f(x,y), создаются матрицы X и Y, состоящие из повторяющихся строк и столбцов. Затем эти матрицы используются для вычисления и отображения функции.

Перед построением трехмерных графиков следует задать сетку с
помощью функции [X,Y]=meshgrid(x,y), которая преобразует векторы х и у в двумерные массивы. После этого рассчитывается значение функции Z, используя значения Х и Y.

Функция colorbar() строит рядом с полем графика столбик с цветовой
гаммой, которая демонстрирует привязку цвета к значению аппликат z.
Функция meshc(X,Y,Z) строит поверхности, дополненную линиями уровня, а функция meshz(X,Y,Z) опускает из каждой граничной точки каркаса перпендикуляр на плоскость oху.

Пример: Трехмерный график для функции surface

x=0:pi/10:2*pi;
y=0:pi/10:2*pi;
[X,Y]=meshgrid(x,y);
Z=cos(X)+sin(Y);
surface(X,Y,Z)
grid on
 colorbar()
xlabel('X')
ylabel('Y')
zlabel('Z')
Для отображения движения точки по траектории (анимирования) используется команда comet(). При этом движущаяся точка напоминает ядро кометы с хвостом.
Используются следующие формы представления этой команды:
comet (y) – отображает движение «кометы» по траектории, заданной
вектором y;
comet (x,y) – отображает движение «кометы» по траектории, заданной
парой векторов y и x;
comet (x,y,p) – аналогична предшествующей команде, но позволяет
задавать длину хвоста кометы (отрезка траектории, выделенного цветом) как p*length(Y), где length(Y) - размер вектора y, а р<1. По умолчанию р = 0.1
Гистограмма, отражающая значения компонент вектора у, строится с
помощью функции
bar(y) (вертикальная)
barh(y) (горизонтальная).

Если задать у с помощью матрицы, то можно представить несколько
диаграмм одновременно. В этом случае есть два способа группировки
столбцов:

bar(y,'grouped') – обычная гистограмма
bar(y,'stacked') – гистограмма с накоплением

Объемную гистограмму можно построить с помощью команды bar3(z),
для которой верно все вышесказанное.

Команда colormap осуществляет замену стандартной цветовой палитры. Названия и расцветку палитр можно найти в справке.

Круговые диаграммы, состоящие из плоских или объемных секторов,
строятся с помощью функций pie(q) или pie3(q). Чтобы выдвинуть один из секторов, надо указать выдвигаемые сектора в виде вектора (1 для выдвигаемых секторов, 0 для остальных), и указать его вторым параметром в функции.
Задание
  • балл: 2
    часть 1:
    описание:
    • задания блок А в соответствии с вариантом (2 балла)
  • балл: 2
    часть 2:
    описание:
    • задания блок B в соответствии с вариантом (2 балла)
Made on
Tilda