close

Вход

Забыли?

вход по аккаунту

?

Двумерная графика MATLAB

код для вставкиСкачать
ДВУМЕРНАЯ ГРАФИКА MATLAB
Введение
Процесс построения двумерных графиков может занимать от одного до шести шагов.
За один шаг можно построить график следующей командой:
plot([-1:0.1:1],exp([-1:0.1:1]))
Строится график экспоненциальной функции. Масштабирование осей производится автоматически.
Представим наиболее полный процесс построения графиков, состоящий из шести шагов.
1.Подготовка данных:
x = 0:.2:12;
y1 = bessel(1,x);
y2 = bessel(2,x);
y3 = bessel(3,x);
2. Выбор окна и положения графика внутри окна:
figure(1)
subplot(2,2,1)
3. Вызов функции построения графика:
h = plot(x,y1,x,y2,x,y3);
4. Задание стилей линий и маркеров:
set(h,'LineWidth',2,{'LineStyle'},{'--';':';'-.'})
set(h,{'Color'},{'r';'g';'b'})
5. Установка масштабов осей и линий сетки:
axis([0 12 0.5 1])
grid on
6. Задание надписей на графике:
xlabel('Время')
ylabel('Амплитуда')
legend(h,'Первая','Вторая','Третья')
title('Функции Бесселя')
[y,ix] = min(y1);
text(x(ix),y,'min1 \rightarrow',...
'HorizontalAlignment','right')
Графические окна
MATLAB выводит графические объекты в специальное графическое окно. Это окно представляет собой объект класса figure. Характеристики окна определяются свойствами соответствующего ему объекта.
Вызов функции построения графиков plot автоматически создает новый объект класса figure.
Объект класса figure можно также создать вызовом его конструктора figure:
figure
В среде MATLAB может одновременно существовать несколько окон. Графики посылаются в активное на данный момент окно. Существующее окно можно сделать активным окном, щелкнув по нему мышкой или передав его номер h как входной аргумент конструктора figure:
figure(h)
Вывод нескольких графиков в одном окне
В одном окне можно отобразить несколько графиков с помощью функции subplot. Вызов этой функции subplot(m,n,k) представляет окно как матрицу размерности "m-на-n" и выбирает k-тый график для текущей кривой.
Пример.
t = 0:pi/20:2*pi;
[x,y] = meshgrid(t);
subplot(2,2,1)
plot(sin(t),cos(t))
axis equal
subplot(2,2,2)
z = sin(x)+cos(y);
plot(t,z)
axis([0 2*pi 2 2])
subplot(2,2,3)
z = sin(x).*cos(y);
plot(t,z)
axis([0 2*pi 1 1])
subplot(2,2,4)
z = (sin(x).^2)(cos(y).^2);
plot(t,z)
axis([0 2*pi 1 1])
Спецификация графиков
Для доступа к конкретному графику надо сделать его текущим. для этого существует 3 способа.
1. Щелкнуть на графике мышкой.
2. Вызвать subplot(m,n,k).
3. Вызвать subplot(h), где h - идентификатор (handle) графика.
Пример.
subplot(2,2,2)
title('Top Right Plot')
Идентификаторы объектов-графиков данного окна (handle) можно получить следующим описанием:
h = get(gcf,'Children')
Построение графиков функций
Для построения графиков функций применяется функция plot. Ее можно применять с различным числом аргументов.
Вызов plot(y) построит график элементов вектора у в зависимости от их номеров.
Вызов plot(х,y) построит график элементов вектора у в зависимости элементов вектора х.
Масштабы подбираются автоматически.
Пример.
figure
t = 0:pi/100:2pi;
y = sin(t);
plot(t,y)
С помощью одного вызова функции plot можно построить несколько графиков:
y2 = sin(t.25);
y3 = sin(t.5);
plot(t,y,t,y2,t,y3)
Можно задавать различные стили линий:
plot(t,y,'',t,y2,'--',t,y3,':')
Добавлять кривые к существующему графику можно с помощью команды hold. При установке hold в on существующий график не удаляется.
Пример.
semilogx(1:100,'+')
hold on
plot(1:3:300,1:100,'--')
hold off
Функцию plot можно вызывать с одним матричным аргументом. При этом будут нарисованы линии для каждого столбца. В следующем примере функция peaks возвращает матрицу "49-на-49", полученную вычислением функции двух переменных. Рисуется 49 линий.
Пример.
Z = peaks;
plot(Z)
Если У - матрица, а х - вектор, то вызов plot(х,У) рисует графики строк или столбцов матрицы У в зависимости от х. Выбор строк или столбцов зависит от того, какая из размерностей матрицы совпадает с размерностью вектора. Если матрица квадратная, то рисуются графики столбцов.
Если Х - матрица, а у - вектор, то вызов plot(Х,у) рисует графики строк или столбцов матрицы Х в зависимости от у. Например, в следующем примере предыдущий график поворачивается.
Пример.
y = 1:length(peaks);
plot(peaks,y)
Если Х и У матрицы одной размерности, то вызов plot(Х,У) рисует графики столбцов матрицы Х в зависимости от столбцов У. Можно также использовать фунцию plot с многими парами матричных аргументов: plot(Х1,У1,Х2,У2,...).
Управление построением графика
Функция plot допускает строковые аргументы, которые специфицируют различные атрибуты линии:
plot(x,y,'color_linestyle_marker')
Строка 'color_linestyle_marker' состоит из цвета, стиля линии и типа маркера.
Пример.
x = 0:10;
y = x.^2;
plot(x,y,'y:square')
Рисуется желтая точечная линия с квадратными маркерами.
Цвета линий задаются первой буквой названия цвета:
c - cyan - голубой,
m - magenta - пурпурный,
y - yellow - желтый,
r - red - красный,
g - green - зеленый,
b - blue - синий,
w - white - белый,
k - black - черный.
Стиль линии задается символами:
- - сплошная линия (по умолчанию),
-- - штриховая линия,
: - точечная линия,
-. -штрих-пунктирная линия.
Маркер задается символами:
+ - знак "плюс",
o - окружность,
* - звездочка,
. - точка,
х - крест,
square - квадрат,
diamond - ромб,
^ - треугольник,
v - перевернутый треугольник,
> - повернутый вправо треугольник,
< - повернутый влево треугольник,
pentagram - пятилучевая звезда,
hexagram - шестилучевая звезда,
none - маркер отсутствует (по умолчанию).
Задание. Поэкспериментируйте в предыдущем примере с цветом, стилем и маркером линии.
Масштабирование осей
Масштабы осей обычно определяются автоматически по исходным данным для графиков. Однако, можно задавать новые пределы следующей функцией:
axis([xmin,xmax,ymin,ymax])
Пример:
x = 0:10;
y = x.^2;
plot(x,y,'b:*')
axis([-2,12,-2,120])
Для автоматического масштабирования каждого из пределов используется значение Inf или -Inf (Inf - infinity - бесконечность):
axis([-Inf 12 -2 120])
Отметки на осях (ticks - "тики") обычно устанавливаются автоматически. Но их можно задавать с помощью свойств 'хtick' и 'ytick' в функции set:
set(gca,'ytick',[0 25 50 75 100])
По умолчанию графики отображаются в прямоугольных осях, которые имеют такое же отношение сторон, как и само графическое окно. Команда позволяет управлять отношением сторон.
Пример.
t = 0:pi/20:2*pi;
plot(sin(t),2*cos(t))
Нарисован эллипс. Теперь применим следующую команду:
axis square
Эта команда делает оси координат одинаковой длины. Для задания единиц осей одинаковой длины применяется следующая команда:
axis equal
Для согласования формы осей с формой графика применяется опция tight (tight - плотный, сжатый):
axis equal tight
Подписи на графиках
Для подписей на графиках применяются следующие функции:
title - добавляет название графика,
xlabel - добавляет подпись оси х,
ylabel - добавляет подпись оси у,
zlabel - добавляет подпись оси z,
legend - добавляет легенду к существующему графику,
text - отображает текстовую строку в соответствующем месте,
gtext - размещает текст на графике с использованием мышки.
Пример.
t = 0:pi/100:2pi;
y = sin(t);
plot(t,y)
xlabel('t = 0 до 2\pi','FontSize',16)
ylabel('sin(t)','FontSize',16)
title('\it{Значения функции sin(x) от нуля до 2\pi}')
В любом месте графика можно разместить текст с помощью функции text.
Пример.
text(3*pi/4,sin(3*pi/4),'\leftarrowsin(t) = .707')
text(pi,sin(pi),'\leftarrowsin(t) = 0')
text(5*pi/4,sin(5*pi/4),'sin(t) = .707\rightarrow',...
'HorizontalAlignment','right')
Можно разместить текст интерактивно с помощью мышки, используя функцию gtext. Эта функция ожидает щелчка мышки в нужном месте графика, чтобы вывести на графике ее входной текстовый аргумент.
Пример.
gtext('Место подписи')
1
6
Документ
Категория
Разное
Просмотров
694
Размер файла
42 Кб
Теги
matlab, график, двумерная
1/--страниц
Пожаловаться на содержимое документа