Построение графиков в логарифмическом и полулогарифмическом масштабах.

      Комментарии к записи Построение графиков в логарифмическом и полулогарифмическом масштабах. отключены

Если для одиночного графика диапазоны изменения переменных вдоль одной или обеих осей координат слишком велики, то можно воспользоваться функциями построения графиков в логарифмическом и полулогарифмических масштабах. Для этого предназначены функции semilogx (логарифмический масштаб по оси ), semilogy (логарифмический масштаб по оси ) и loglog (логарифмический масштаб по обеим осям). Синтаксис указанных функций аналогичен синтаксису функции plot: они принимают аргументы, заданные в виде пары векторов значений абсцисс и ординат.

Построим в качестве примера график функции на промежутке в логарифмическом масштабе по оси .

Будем иметь (рис. 2.9.6):

x=0.1:0.001:1000;

y=3*cos(log(2*x));

semilogx(x,y)

Рис. 2.9.6. График функции в логарифмическом масштабе по оси .

Построение графиков в полярных координатах.

Для построения графика функции в полярной системе координат используется команда polar, например (рис. 2.9.7):

phi=0:0.001:2*pi;

r=sin(5*phi);

polar(phi,r);

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

Функции построения графиков, рассмотренные в предыдущем параграфе осуществляли автоматическое оформление графиков. Разумеется у системы MATLAB имеются дополнительные возможности, связанные с управлением внешним видом графика – заданием цвета и стиля линий, а также размещение различных надписей в пределах графического окна.

Рис. 2.9.7. График функции в полярной системе координат.

Рис. 2.10.1. Пример маркировки точек кривой посредством окружностей.

Выбор свойств линий.

Так, например, команды (рис. 2.10.1)

x=0:0.1:2*pi;

y=cos(x);

plot(x, y, ‘k-‘, x, y, ‘ko’)

позволяют придать графику вид черной сплошной линии, на которой в дискретных точках, расстояние между которыми равно 0.1, проставляются черные окружности. Здесь функция plot дважды строит график одной и той же функции, но в двух разных стилях. Первый из этих стилей отмечен как “k-”, что обозначает проведение линии черным цветом (буква k), а штрих означает проведение сплошной линии. Второй стиль, помеченный как “ko”, обозначает проведение тем же черным цветом (буква k) окружностей (буква o) на месте вычисляемых точек.

В общем случае команда

plot(x1,y1,s1,x2,y2,s2,…)

позволяет определить в одном графическом окне изображения нескольких функций y1(x1),y2(x2),… используя стили s1,s2,….

Заметим, что стили s1,s2,… задаются в виде набора трех символьных маркеров (стилевой строки), один из которых задает тип линии, второй – цвет линии, а третий – тип маркера, используемого для пометки представляемых точек (таблица 2.10.1). При отсутствии указания типов маркеров используются значения, установленные по умолчанию. Отметим, что порядок, в которым указываются маркеры, задающие тип линии, цвет линии и тип точки несущественен. Если в стилевой строке задан тип маркера, но не указан тип линии, то представляемые точки маркером метятся, но не соединяются друг с другом отрезками прямых.

Более мощным способом построения графиков функций является метод дескрипторов, который относится к низкоуровневой графике MATLAB. Метод дискрипторов позволяет напрямую обратиться к базовым графическим объектам и задать его свойства. Детальное знакомство со свойствами графических объектов MATLAB выходит за рамки книги.

В этой связи приведем ниже некоторый пример, иллюстрирующий основные приемы работы с дискрипторной графикой и позволяющий продемонстрировать суть данного метода (рис. 2.10.2).

x=0:0.001:2*pi;

y=cos(x);

hplot=plot(x,y);

set(hplot,’LineWidth’,8);

В данном случае команда plot через опорные точки проводит отрезки прямых линий с координатами x,y. Прямые линии в системе MATLAB представляют собой объекты типа line. Эти объекты имеют очень большое количество свойств и характеристик, которые можно менять. Доступ к этим объектам осуществляется посредством их дескрипторов.

Командой hplot=plot(x,y) создается графический объект и переменной hplot присваивается значение дескриптора графического объекта типа line, использованного для построения графика функции .

Таблица 2.10.1. Параметры для управления цветом и видом графиков.

Параметр Обозначение(управляющий символ)
Тип линии
сплошная (по умолчанию)
пунктирная :
штриховая
штрих-пунктирная -.
Цвет линии
красный (от англ. red) r
желтый (от англ. yellow) y
зеленый (от англ. green) g
синий (от англ. blue) b
голубой /циановый/ (от англ. cyan) c
розовый /малиновый/ (от англ. magenta) m
черный (от англ. black) k
белый (от англ. white) w
Тип маркера
точка (жирная точка) .
кружок о
крестик (косоугольный крестик) x
плюс (прямоугольный крестик) +
звездочка (восьмиконечная снежинка) *
квадратик s
ромбик d
отсутствие маркера none
треугольник вершиной вниз v
треугольник вершиной вверх ^
треугольник вершиной влево
треугольник вершиной вправо
пятиконечная звезда p
шестиконечная звезда h

Затем данный дескриптор передается в качестве параметра функции set для опознания конкретного графического объекта и задания значений соответствующих свойств объекта.

В рассматриваемом примере было установлено значение свойства ‘LineWidth’ (толщина линии) равным 7 (по умолчанию 0.5). График, полученный в результате изменения толщины линии, представлен на рис. 2.10.2.

Текущее значение любого параметра (атрибута; характеристики) графического объекта возвращается функцией get. Так, например, если после получения показанного на рис. 2.10.1 графика выполнить команду

width=get(hplot, ‘LineWidth’)

width =

Рис. 2.10.2. График функции на интервале (толщина кривой – 7 пикселей).

то для переменной width будет присвоено значение свойства ‘LineWidth’ равное 7.

Для получения списка всех свойств графического объекта следует обратиться к функции get, указав ей в качестве единственного параметра дескриптор объекта. Так, например, для дескриптора hplot объекта типа line можно найти весь список его свойств:

get(hplot);

DisplayName: »

Annotation: [1×1 hg.Annotation]

Color: [0 0 1]

LineStyle: ‘-‘

LineWidth: 7

Marker: ‘none’

MarkerSize: 6

MarkerEdgeColor: ‘auto’

MarkerFaceColor: ‘none’

XData: [1×6284 double]

YData: [1×6284 double]

ZData: [1×0 double]

BeingDeleted: ‘off’

ButtonDownFcn: []

Children: [0x1 double]

Clipping: ‘on’

CreateFcn: []

DeleteFcn: []

BusyAction: ‘queue’

HandleVisibility: ‘on’

HitTest: ‘on’

Interruptible: ‘on’

Selected: ‘off’

SelectionHighlight: ‘on’

Tag: »

Type: ‘line’

UIContextMenu: []

UserData: []

Visible: ‘on’

Parent: 173.0011

XDataMode: ‘manual’

XDataSource: »

YDataSource: »

ZDataSource: »

Среди свойств графического объекта с дескриптором hplot имеются интуитивно понятные. В частности, помимо уже рассмотренного свойства ‘LineWidth’, свойство ‘Color’ отвечает за цвет линии в RGB-кодировке (красный, зеленый, синий) и так как значение поля равно [0 0 1], то цвет линии синий, а свойство ‘MarkerSize’ определяет размер маркера точек графика (в данном случае равного 6). Установленные значения полей указываются в списке свойств справа от знака равно, при этом свойства, значения которых не установлены, отмечены пустым полем или знаком [].

Статьи к прочтению:

Seth Shostak: ET is (probably) out there — get ready


Похожие статьи: