Сделай Сам Свою Работу на 5

Построение графика в виде двумерной линии

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

Если в функцию plot передать два параметра, представляющие собой одномерные вектора x и y – plot (x, y) – то будет проведена линия через точки, абсциссы которых задаются в качестве первого параметра, а ординаты – в качестве второго.

Следующий пример заполняет массив (матрицу-строку) значениями от 0 до 720 с шагом 1.0, к каждому значению матрицы применяет функцию sind (синус от угла, заданного в градусах) и выводит результат в виде графика.

 

>> x = 0: 0.5: 720;

>> y = sind (x);

>> plot (x, y)

 

После выполнения функции plot откроется окно, показанное на рисунке 2.1.

 

Рис. 2.1.

 

Если функцию plot вызвать с одним параметром (plot(y)), то по оси Y будут отложены последовательно значения элементов матрицы y, а по оси X будут отложены номера элементов матрицы y. В результате выполнения следующего примера будет выведен график, показанный на рисунке 2.2:

 

>> x = 0: 0.5: 720;

>> y = sind (x);

>> plot (y)

Рис. 2.2.

 

Функция plot также может принимать дополнительный параметр, который описывает внешний вид линии, которой будет нарисован график. Внешний вид линии описывается в виде строки, которая может содержать три составные части:

· тип линии;

· вид маркеров, добавляемых на линию;

· цвет линии.

 

Тип линии задается комбинацией символов, приведенных в таблице 2.2

 

Таблица 2.2

Спецификатор Тип линии Внешний вид
- Сплошная линия (значение по умолчанию)
-- Штриховая линия
: Пунктирная линия
-. Штрихпунктирная линия

 

Тип маркера задается комбинацией символов, приведенных в таблице 2.3

 

Таблица 2.3

Спецификатор Внешний вид маркера
+
o
*
.
x
s или square
d или diamond
^
v
>
<
p или pentagram
h или hexagram

 



Цвет линии может быть задан с помощью символов, приведенных в таблице 2.4

 

Таблица 2.4

Спецификатор Цвет
r Красный
g Зеленый
b Голубой
c Салатовый
m Маджента
y Желтый
k Черный
w Белый

 

Например, для отображения графика красной штриховой линией, в функцию plot нужно передать в качестве третьего параметра нужно строку '--r'; для отображения графика в виде зеленых кружков, не соединенных линией, в качестве третьего параметра нужно строку 'og'; если те же самые кружки должны быть соединены сплошной линией, то третий параметр должен быть равен '-og'. Следующий пример демонстрирует отображение синусоиды черной штрихпунктирной линией.

 

x = 0: 1.0: 720;

y = sind (x);

plot (x, y, '-.k')

 

Результат работы этого примера приведен на рисунке 2.3.

Рис. 2.3.

 

Кроме указанного, существует и другой способ изменения внешнего вида графиков, он описан в справке к функции plot, здесь мы его описывать не будем.

Часто требуется нарисовать несколько графиков в одном окне. Если несколько вызовов функции plot следуют друг за другом, то каждый последующий вызов функции plot перерисовывает окно с графиком, поэтому в результате будет виден только результат последнего вызова функции plot. Это продемонстрировано на следующем примере, результат которого показан на рисунке 2.4.

 

>> x = 0: 0.01: 10;

>> f1 = sin(x);

>> f2 = sin (x) ./ x;

>> plot (x, f1)

>> plot (x, f2)

 

Рис. 2.4.

 

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

 

plot (x1, y2, linestyle1, x2, y2, linestyle2, ..., xN, yN, linestyleN)

или

plot (x1, y2, x2, y2, ..., xN, yN)

 

Изменим предыдущий пример, чтобы на графике были отображены две кривые (Рис. 2.5):

 

>> x = 0: 0.01: 10;

>> f1 = sin(x);

>> f2 = sin (x) ./ x;

>> plot (x, f1, x, f2)

 

Рис. 2.5.

 

Если нужно задать стиль линий в явном виде, то этот пример можно переписать в виде:

>> x = 0: 0.01: 10;

>> f1 = sin(x);

>> f2 = sin (x) ./ x;

>> plot (x, f1, 'k--', x, f2, 'b:')

 

Результат показан на рисунке 2.6.

Другой способ построения нескольких графиков состоит в использовании команды hold on, которая "замораживает" фигуру (так в терминах MATLAB называется окно с графиком), и все последующие вызовы функции plot накладывают графики на предыдущие, пока не будет вызвана команда hold off, "размораживающая" фигуру. Изменим предыдущий пример таким образом, чтобы он использовал команду hold on/off. В результате будет создано окно, показанное на рисунке 2.7.

 

>> x = 0: 0.01: 10;

>> f1 = sin(x);

>> f2 = sin (x) ./ x;

>> plot (x, f1)

>> hold on

>> plot (x, f2)

>> hold off

 

Рис. 2.6.

 

 

Рис. 2.7.

 

В отличие от случая использования одного вызова функции plot для рисования нескольких графиков, при использовании команды hold on, MATLAB будет последовательно менять цвета выводимых кривых (все кривые по умолчанию будут отображаться синим цветом), поэтому при использовании команд hold on/off для наглядности графиков желательно всегда в явном виде указывать стиль линий. Изменим предыдущий пример таким образом, чтобы получить такой же график, как и показанный на рисунке 2.6:

 

>> x = 0: 0.01: 10;

>> f1 = sin(x);

>> f2 = sin (x) ./ x;

>> plot (x, f1, 'k--')

>> hold on

>> plot (x, f2, 'b:')

>> hold off

 

Использование команд hold on/off удобно, если нужно последовательно отобразить несколько графиков в цикле, если же требуется нарисовать небольшое число графиков (два-три графика), то удобнее использовать вызов функции plot, передавая ей данные для нескольких графиков.

 

Оформление графиков

В таблице 2.5 показаны некоторые функции, которые используются при оформлении графиков.

Таблица 2.5

clf Очистить окно фигуры от графиков
grid on Включить отображение сетки
grid off Выключить отображение сетки
xlim Изменить отображаемые пределы по оси X
ylim Изменить отображаемые пределы по оси Y
title Добавить заголовок к графику
xlabel Добавить подпись к оси X
ylabel Добавить подпись к оси Y
subplot Расположение нескольких графиков в одном окне
axis Установка различных параметров осей (в том числе отображаемые пределы, масштаб, направление осей)
text Добавить надпись на график
legend Добавить легенду на график

 

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

 

x = -50: 0.01: 50;

>> y = sin (x) ./ x;

>> plot (x, y)

 

Рис. 2.8.

 

Если затем выполнить команду grid on, то график примет вид, показанный на рисунке 2.9

 

Рис. 2.9.

 

Интервал изменения по осям можно изменять с помощью функций xlim, ylim (Рис. 2.10):

 

>> xlim ([-10, 10])

>> ylim ([-1, 2])

 

Рис. 2.10.

 

Функции xlim и ylim можно вызывать несколькими способами. Один из них, показанный в предыдущем примере, заключается в вызове этих функций и передаче им матрицы с двумя элементами: минимальным и максимальным значением по соответствующей оси. Для того, чтобы вернуть интервал о осям в свое первоначальное состояние, когда интервал подбирается таким образом, чтобы уместить все данные, в качестве параметров функции xlim и ylim нужно передать строку 'auto' (например, xlim('auto')).

После вызова функции title('График функции sinc(x)') над графиком появится заголовок (Рис. 2.11):

 

Рис. 2.11.

 

Следующий вызов функций xlabel и ylabel добавляет подписи к осям X и Y соответственно (Рис. 2.12).

>> xlabel ('X')

>> ylabel ('Y = sin(x) / x')

 

Рис. 2.12.

 

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

 

text(x, y, 'string')

 

Здесь первые два параметра задают координаты левого верхнего угла надписи, а третий параметр – сам текст. Координаты задаются в единицах, отложенных по осям графика. Например, следующая команда добавляет надпись около вершины графика (результат показан на рисунке 2.13):

 

>> text (0.1, 1.1, '(0; 1)')

 

Рис. 2.13.

 

Для того, чтобы показать, чему соответствует каждая кривая на графике (особенно, если кривых несколько), на график добавляют легенду. В MATLAB для этого предназначена функция legend. Как и в случае других функций, у legend существует несколько способов ее вызова. Один из возможных вариантов создания легенды - это передать в функцию через запятую несколько строк, каждая из которых описывает кривую в порядке ее добавления на график. Количество передаваемых строк не должно превышать количество кривых, уже отображенных на графике. Использование функции legend продемонстрировано в следующем примере, результат показан на рисунке 2.14.

 

>> x = -10: 0.01: 10;

>> f1 = sin (x) ./ x;

>> f2 = sin (x * 2) ./ (x * 2);

>> f3 = sin (x / 2) ./ (x / 2);

>> plot (x, f1, '-', x, f2, ':', x, f3, 'k-.');

>> legend ('sin (x) / x', ...

'sin (x * 2) / (x * 2)', ...

'sin (x * 0.5) / (x * 0.5)')

 

Рис. 2.14.

 

В таблице 2.6 приведены некоторые другие способы использования функции legend, которые позволяют настраивать внешний вид легенды.

Таблица 2.6

legend ('boxon') Включить отображение рамки вокруг легенды
legend ('boxoff') Выключить отображение рамки вокруг легенды
legend ('show') Показать легенду
legend ('hide') Скрыть легенду
legend ('location', locationname) Изменить расположением легенды относительно графика. Возможные значения параметра 'locationname' приведены в таблице 2.7.
legend('Orientation', orientationname) Изменить расположение элементов легенды. Если orientationname равно 'vertical' (значение по умолчанию), то элементы легенды располагаются вертикально в столбец (как показано на рисунке 2.14). Если orientationname равно 'horizontal', то элементы легенды располагаются горизонтально в строку.

 


Таблица 2.7

Значение параметра orientationname Расположение легенды
North Сверху внутри области графика
South Снизу внутри области графика
East Справа внутри области графика
West Слева внутри области графика
NorthEast Сверху справа внутри области графика
NorthWest Сверху слева внутри области графика
SouthEast Снизу справа внутри области графика
SouthWest Снизу слева внутри области графика
NorthOutside Сверху снаружи области графика
SouthOutside Снизу снаружи области графика
EastOutside Справа снаружи области графика
WestOutside Слева снаружи области графика
NorthEastOutside Сверху справа снаружи области графика
NorthWestOutside Сверху слева снаружи области графика
SouthEastOutside Снизу справа снаружи области графика
SouthWestOutside Снизу слева снаружи области графика
Best Расположение легенды внутри области графика подбирать автоматически, чтобы она как можно меньше накладывалась на график
BestOutside Расположение легенды снаружи области графика подбирать автоматически

 

На рисунке 2.15 а), б) показаны графики с различным расположением легенды.

 

legend ('Location', 'NorthWest')   а) legend ('Location','NorthWestOutside')   б)

Рис. 2.15.

 



©2015- 2019 stydopedia.ru Все материалы защищены законодательством РФ.