Глава 2. Графика в Matlab
(с синего на красный) и изменен тип линии (со сплошной на пунктирную). Как уже отмечалось ранее, для внесения необходимых изменений в настройки можно использовать различные пути, и в частности команды контекстного меню (рис. 2.8).
Описанный способ размещения в одном графическом окне нескольких графиков далеко не единственный. Для этих целей можно использовать все ту же функцию plot(), но несколько иначе указать ее аргументы, а именно последовательно указать узловые точки и значения в узловых точках для первой и второй функций. В частности, с помощью команды plot(x1,y1,x2,y2) создается практически такое же графическое окно и такими же кривыми, как на рис. 2.6, но с той лишь разницей, что кривые отображаются разным цветом. То есть в случае вызова функции plot() в формате plot(x1,y1,x2,y2) разные кривые отображаются разным цветом, но тип линии, как и в предыдущем случае, одинаков для обеих кривых.
На заметку
В некоторых случаях при отображении графиков функций разумным представляется использование логарифмической шкалы по одной или обеим координатам. Для создания графика с логарифмическим масштабом координатных осей используют функции loglog() (двойной логарифмический масштаб, то есть логарифмический масштаб по каждой из осей), semilogx() (логарифмический масштаб по горизонтальной оси) и semilogy() (логарифмический масштаб по вертикальной оси). Кроме этого, не следует пренебрегать возможностью изменять способ масштабирования уже готовых графиков в окне настройки графики.
Настройки вида графика
Это мелочи. Но нет ничего важнее мелочей!
К/ф "Приключения Шерлока Холмса и доктора Ватсона. Знакомство"
Хотя стандартные средства и утилиты графического окна позволяют выполнять полный спектр настроек вида графики, крайне неудобно выполнять настройки каждый раз после его создания. Намного удобнее делать это непосредственно при создании графики. Для определения параметров создаваемых графиков используют ряд команд и инструкций. Например, цвет линии, используемой для отображения графика, можно указать с помощью специальной опции – третьего необязательного аргумента функции plot(). Значением аргумента является кодовая буква, обозначающая цвет. Буква заключается в одинарные кавычки. В табл. 2.1 перечислены кодовые буквы для основных цветов.
51
Самоучитель Matlab
Табл. 2.1. Кодовые буквы для обозначения цветов
Кодовая буква |
Цвет |
|
|
y |
Кодовая буква для обозначения желтого цвета (английское назва- |
ние цвета yellow) |
|
|
|
m |
Кодовая буква для обозначения малинового цвета (английское на- |
звание цвета magenta) |
|
|
|
c |
Кодовая буква для обозначения цианового цвета (английское на- |
звание цвета cyan) |
|
|
|
r |
Кодовая буква для обозначения красного цвета (английское на- |
звание цвета red) |
|
|
|
g |
Кодовая буква для обозначения зеленого цвета (английское на- |
звание цвета green) |
|
|
|
b |
Кодовая буква для обозначения синего цвета (английское назва- |
ние цвета blue) |
|
|
|
w |
Кодовая буква для обозначения белого цвета (английское назва- |
ние цвета white) |
|
|
|
k |
Кодовая буква для обозначения черного цвета (английское назва- |
ние цвета black) |
|
|
|
Ниже приведен пример использования опций определения цвета в командах создания графики, а также опций, определяющих тип линий и тип маркера (символ отображения базовых точек, на основе которых строится кривая):
>>x=0:0.01:6;
>>y=exp(-x).*cos(2*pi*x);
>>plot(x,y,'r')
>>z=x.^2.*exp(-x);
>>plot(x,y,'r',x,z,'g')
>>plot(x,y,'r:',x,z,'g--')
>>plot(x,y,'pr',x,z,'g-')
Разберем последовательно эти команды и результат их выполнения. Командой x=0:0.01:6 создается массив узловых точек, а командой y=exp(-x).*cos(2*pi*x) в этих точках табулируется функция y(x) = exp(−x)cos(2πx). График функции создается командой plot(x,y,'r'), при этом в соответствии с использованной опцией цвет отображения кривой на графике – красный. Результат показан на рис. 2.9.
Если создается несколько графиков в одном графическом окне, опции определения цвета задаются практически так же: для каждого графика указывается значение опции цвета. Опция цвета указывается после векторов базовых точек для каждого из графиков. В частности, командой z=x.^2.*exp(-x) в узловых точках табулируется функция z(x) = x2 exp(−x) . Для вычисления вектора квадратов аргумента в узловых точках использован оператор .^ (оператор поэлементного возведения в степень), а поэлементное произведе-
52
Глава 2. Графика в Matlab
Рис. 2.9. График создан с явным указанием цвета линии
Рис. 2.10. В одном графическом окне разным цветом отображаются два графика
53
Самоучитель Matlab
ние массивов реализуется с помощью оператора .* (оператор поэлементного произведения). Далее, командой plot(x,y,'r',x,z,'g') в одном графическом окне отображаются графики двух функций, причем для отображения первой функции использована кривая красного цвета, а для отображения второго графика – кривая зеленого цвета. Результат представлен на рис. 2.10.
Вследующих командах, помимо опций определения цвета кривых, использованы инструкции определения типа линии и базового символа (маркера). Для каждого из этих параметров используются свои кодовые символы. Они указываются в строке вместе с кодовым символом цвета кривой или без него.
Втабл. 2.2 перечислены кодовые символы для определения типа линии.
Табл. 2.2. Кодовые символы для определения типа линии
Кодовый символ |
Тип линии |
|
|
- |
Сплошная линия. Используется по умолчанию, если опция опре- |
деления типа линии не задана |
|
|
|
: |
Пунктирная линия |
-- |
Штрихованная линия |
-. |
Штрихпунктирная линия |
Вид маркера также определяется специальными кодовыми символами, которые описаны в табл. 2.3.
Табл. 2.3. Кодовые символы для определения маркера
Кодовый символ |
Маркер |
|
|
. |
В качестве маркера используется крупная точка |
o |
В качестве маркера используется кружек |
x |
В качестве маркера используется косой крест |
+ |
В качестве маркера используется прямой крест |
* |
В качестве маркера используется звездочка |
s |
В качестве маркера используется квадрат |
d |
В качестве маркера используется ромб |
v |
В качестве маркера используется треугольник с направленной |
вниз вершиной |
|
|
|
^ |
В качестве маркера используется треугольник с направленной |
вверх вершиной |
|
|
|
< |
В качестве маркера используется треугольник с направленной |
влево вершиной |
|
|
|
> |
В качестве маркера используется треугольник с направленной |
вправо вершиной |
|
|
|
p |
В качестве маркера используется пятиконечная звезда |
h |
В качестве маркера используется шестиконечная звезда |
54
Глава 2. Графика в Matlab
Кодовые символы, определяющие параметры кривой (тип линии, цвет, маркер), указываются вместе в любой комбинации и любой последовательности. При этом если указан тип маркера и не указан тип базовой линии, базовые точки отображаются маркерами, но не соединяются кривыми. Поэтому, например, командой plot(x,y,'r:',x,z,'g--') в одном окне создаются два графика. Для отображения первого используется красная пунктирная кривая. Второй отображается зеленой штрихованной кривой. Результат выполнения команды показан на рис. 2.11.
Рис. 2.11. Графики отображаются с помощью кривых разного цвета и разного типа
В команде plot(x,y,'pr',x,z,'g-') задается не только цвет и тип кривой, но и базовые символы (маркеры) для первого графика. В частности, первый график отображается в виде маркеров - пятиконечных звезд красного цвета, которые между собой не соединяются линией. Второй график отображается сплошной линией зеленого цвета без отображения маркеров. Результат выполнения команды показан на рис. 2.12.
Поскольку базовые точки в векторе x заданы достаточно плотно, маркеры на первом графике накладываются друг на друга, создавая иллюзию наличия кривой. Однако в начальной части графика хорошо видно, что базовые точки с маркерами кривыми не соединены.
Часть опционных параметров задаются в следующем формате: в одинарных кавычкахназваниеопциии,череззапятую,еезначение.Ктакимопцияммож-
55