Диаграмма OHLC, диаграмма водопада и диаграмма воронки

В этой главе основное внимание уделяется трем другим типам диаграмм, включая OHLC, Waterfall и Funnel Chart, которые можно создать с помощью Plotly.

График OHLC

An open-high-low-close диаграмма (также OHLC) - это тип bar chartобычно используется для иллюстрации движения цены финансового инструмента, такого как акции. Диаграммы OHLC полезны, поскольку они показывают четыре основных точки данных за период. Тип диаграммы полезен, потому что он может показывать увеличение или уменьшение импульса. Высокие и низкие точки данных полезны при оценке волатильности.

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

Примеры данных для демонстрации диаграммы OHLC показаны ниже. Он имеет объекты списка, соответствующие максимальному, минимальному, открытому и закрытому значениям, как в соответствующих строках даты. Представление даты строки преобразуется в объект даты с помощьюstrtp() функция из модуля datetime.

open_data = [33.0, 33.3, 33.5, 33.0, 34.1]
high_data = [33.1, 33.3, 33.6, 33.2, 34.8]
low_data = [32.7, 32.7, 32.8, 32.6, 32.8]
close_data = [33.0, 32.9, 33.3, 33.1, 33.1]
date_data = ['10-10-2013', '11-10-2013', '12-10-2013','01-10-2014','02-10-2014']
import datetime
dates = [
   datetime.datetime.strptime(date_str, '%m-%d-%Y').date() 
   for date_str in date_data
]

Мы должны использовать указанный выше объект дат в качестве параметра x, а другие - для параметров открытия, максимума, минимума и закрытия, необходимых для go.Ohlc() функция, возвращающая трассировку OHLC.

trace = go.Ohlc(
   x = dates, 
   open = open_data, 
   high = high_data,
   low = low_data, 
   close = close_data
)
data = [trace]
fig = go.Figure(data = data)
iplot(fig)

Вывод кода приведен ниже -

График свечей

В candlestick chartаналогична диаграмме OHLC. Это похоже на сочетаниеline-chart и bar-chart. Прямоугольники представляют спред между значениями открытия и закрытия, а линии представляют спред между минимальным и максимальным значениями. Точки выборки, в которых значение закрытия выше (ниже), чем значение открытия, называются увеличивающимися (уменьшающимися).

След кэндлестрика возвращается go.Candlestick() function. Мы используем те же данные (что и для графика OHLC) для визуализации свечного графика, как показано ниже -

trace = go.Candlestick(
   x = dates, 
   open = open_data, 
   high = high_data,
   low = low_data, 
   close = close_data
)

Вывод приведенного выше кода упомянут ниже -

График водопада

Диаграмма водопада (также известная как flying bricks chart or Mario chart) помогает понять совокупный эффект последовательно вводимых положительных или отрицательных значений, которые могут быть основаны на времени или категориях.

Начальные и конечные значения показаны в виде столбцов, а отдельные отрицательные и положительные корректировки показаны в виде плавающих шагов. Некоторые диаграммы водопада соединяют линии между столбцами, чтобы диаграмма выглядела как мост.

go.Waterfall()функция возвращает след водопада. Этот объект можно настроить с помощью различных именованных аргументов или атрибутов. Здесь атрибуты x и y устанавливают данные для координат x и y графика. Оба могут быть списком Python, массивом numpy или серией Pandas, строками или объектами даты и времени.

Другой атрибут measureкоторый представляет собой массив, содержащий типы значений. По умолчанию значения считаются какrelative. Установите значение «всего», чтобы вычислить суммы. Если он равенabsoluteон сбрасывает вычисленную сумму или объявляет начальное значение там, где это необходимо. Атрибут 'base' устанавливает место рисования основания стержня (в единицах позиционной оси).

Следующий код отображает диаграмму водопада -

s1=[
   "Sales", 
   "Consulting", 
   "Net revenue", 
   "Purchases", 
   "Other expenses", 
   "Profit before tax"
]
s2 = [60, 80, 0, -40, -20, 0]
trace = go.Waterfall(
   x = s1,
   y = s2,
   base = 200,
   measure = [
      "relative", 
      "relative", 
      "total", 
      "relative", 
      "relative", 
      "total"
   ]
)
data = [trace]
fig = go.Figure(data = data)
iplot(fig)

Приведенный ниже вывод является результатом приведенного выше кода.

Диаграмма-воронка

Диаграммы-воронки представляют данные на разных этапах бизнес-процесса. Это важный механизм в Business Intelligence для выявления потенциальных проблемных областей процесса. Воронкообразная диаграмма используется для визуализации постепенного сокращения данных при переходе от одной фазы к другой. Данные на каждой из этих фаз представлены в виде отдельных частей по 100% (целого).

Как и круговая диаграмма, в воронкообразной диаграмме также не используются оси. Его также можно рассматривать как аналогstacked percent bar chart. Любая воронка состоит из верхней части, называемой головкой (или основанием), и нижней части, называемой шейкой. Чаще всего воронкообразная диаграмма используется для визуализации данных о конверсиях продаж.

Плотли go.Funnel()функция производит трассировку воронки. Основные атрибуты, которые должны быть предоставлены этой функции: x иy. Каждому из них назначается список элементов Python или массив.

from plotly import graph_objects as go
fig = go.Figure(
   go.Funnel(
      y = [
         "Website visit", 
         "Downloads", 
         "Potential customers", 
         "Requested price", 
         "invoice sent"
      ],
      x = [39, 27.4, 20.6, 11, 2]
   )
)
fig.show()

Результат приведен ниже -