Как построить график в логарифмическом масштабе
Перейти к содержимому

Как построить график в логарифмическом масштабе

Логарифмический график

Еще

Хочу рассказать об одной важной вещи, которую должен знать каждый начинающий инвестор.

Сразу скажу, что когда я сам начинал инвестировать, я не знал об этом. Речь идет о логарифмическом графике, позволяющем объективно оценить долгосрочный рост активов.

Приведу определение логарифмического графика из Википедии:

«Логарифмический масштаб (шкала) — шкала, длина отрезка которой пропорциональна логарифму отношения величин, отмеченных на концах этого отрезка, в то время как на шкале в линейном масштабе длина отрезка пропорциональна разности величин на его концах»

Если вы не учились на физ-мате, для вас это наверняка звучит как полная белиберда, собственно, как и для меня. Поэтому объясню своими словами.

Есть два вида графиков: линейный и логарифмический.

Первый вы все знаете: у него вертикальная шкала растет линейно, например, 0, 10, 20, 30, 40 и т.д. Т.е. шкалу задает величина между нулем и первым значением (абсолютный прирост в единицах, в примере – 10 единиц).

Со вторым интереснее: здесь рост нелинейный (геометрический), например, 0, 10, 20, 40, 80 и т.д. Тут шкалу задает относительный (процентный) прирост. В моем примере это рост в каждом периоде на 100%.

Разница в том, что логарифмический график более адекватно показывает относительный прирост. Т.е. в моем примере выше с логарифмическим графиком каждый год (пусть 0 — цена в первый год, 10 — во второй, 20 — в третий и т.д.) цена росла на 100%. И на графике это будет прямой трендовой линией.

Если этот же актив поместить на линейный график, то сначала будет казаться, что он почти не растет, а к концу мы увидим невероятный рост. Будет складываться ощущение, что актив перекуплен и вот-вот должен рухнуть.

Чтобы наглядно это увидеть я привел несколько сравнений линейных и логарифмических графиков одних и тех же активов. Я взял данные по S&P 500, Татнефти и Новатэку и McDonald’s из Investing.com.

Логарифмический график
Логарифмический график
Логарифмический график
Логарифмический график

Если на графиках Татнефти и Новатэка эффект выражен не так сильно ввиду недолгого периода существования Московской биржи (хотя тоже существенен), то на американских графиках (S&P 500 и McDonald’s) разница очевидна. Посмотрите на McDonald’s: на линейном графике кажется, как будто люди с ума сошли: покупают невероятно выросший актив. В то же время складывается ощущение, что раньше McDonald’s вообще не рос и не представлял инвестиционной привлекательности (до 1990 года).

Если же посмотреть на логарифмический график McDonald’s, то мы увидим, что сейчас темп роста, наоборот, замедлился в процентном отношении. Именно этот график показывает правдивую картину. McDonald’s давно уже стал зрелой компанией, и он физически не может расти быстрее, потому что и так занимает огромную долю рынка. Он может только поддерживать стабильный, устойчивый рост.

Поэтому если вы придерживаетесь, что называется, long-term investments, т.е. долгосрочных инвестиций, то обязательно смотрите на логарифмический график, чтобы объективно оценить тренд и темпы роста цен на активы на длинных периодах времени.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В данном случае команда 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 графика выполнить команду

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *