Gráfico OHLC, Gráfico em Cachoeira e Gráfico Funil

Este capítulo enfoca outros três tipos de gráficos, incluindo OHLC, Cachoeira e Gráfico de Funil, que podem ser feitos com a ajuda do Plotly.

Gráfico OHLC

A open-high-low-close gráfico (também OHLC) é um tipo de bar chartnormalmente usado para ilustrar movimentos no preço de um instrumento financeiro, como ações. Os gráficos OHLC são úteis, pois mostram os quatro principais pontos de dados em um período. O tipo de gráfico é útil porque pode mostrar o aumento ou diminuição do momentum. Os pontos de dados alto e baixo são úteis na avaliação da volatilidade.

Cada linha vertical no gráfico mostra a faixa de preço (os preços mais altos e mais baixos) em uma unidade de tempo, como dia ou hora. As marcas de escala projetam-se de cada lado da linha indicando o preço de abertura (por exemplo, para um gráfico de barras diário, este seria o preço inicial para aquele dia) à esquerda e o preço de fechamento para aquele período de tempo à direita.

Os dados de amostra para demonstração do gráfico OHLC são mostrados abaixo. Ele tem objetos de lista correspondentes a valores alto, baixo, aberto e fechado, como em strings de data correspondentes. A representação de data da string é convertida em objeto de data usandostrtp() função do módulo 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
]

Temos que usar o objeto de datas acima como parâmetro x e outros para os parâmetros de abertura, alta, baixa e fechamento necessários para go.Ohlc() função que retorna o traço 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)

A saída do código é fornecida abaixo -

Gráfico de velas

o candlestick charté semelhante ao gráfico OHLC. É como uma combinação deline-chart e um bar-chart. As caixas representam o spread entre os valores de abertura e fechamento e as linhas representam o spread entre os valores baixo e alto. Os pontos de amostra em que o valor de fechamento é maior (menor) do que o valor de abertura são chamados de aumento (diminuição).

Rastreamento de vela é retornado por go.Candlestick() function. Usamos os mesmos dados (como para o gráfico OHLC) para renderizar o gráfico de velas conforme fornecido abaixo -

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

A saída do código fornecido acima é mencionada abaixo -

Gráfico em cascata

Um gráfico em cascata (também conhecido como flying bricks chart or Mario chart) ajuda a compreender o efeito cumulativo de valores positivos ou negativos introduzidos sequencialmente, que podem ser baseados no tempo ou na categoria.

Os valores iniciais e finais são mostrados como colunas com os ajustes individuais negativos e positivos descritos como etapas flutuantes. Alguns gráficos em cascata conectam as linhas entre as colunas para fazer o gráfico parecer uma ponte.

go.Waterfall()função retorna um rastreamento em cascata. Este objeto pode ser personalizado por vários argumentos ou atributos nomeados. Aqui, os atributos xey configuram os dados para as coordenadas xey do gráfico. Ambos podem ser uma lista Python, matriz numpy ou série Pandas ou strings ou objetos de data e hora.

Outro atributo é measureque é uma matriz contendo tipos de valores. Por padrão, os valores são considerados comorelative. Defina como 'total' para calcular as somas. Se for igual aabsoluteele redefine o total calculado ou para declarar um valor inicial quando necessário. O atributo 'base' define onde a base da barra é desenhada (em unidades de eixo de posição).

O código a seguir renderiza um gráfico em cascata -

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)

A saída mencionada abaixo é resultado do código fornecido acima.

Gráfico Funil

Os gráficos de funil representam dados em diferentes estágios de um processo de negócios. É um mecanismo importante em Business Intelligence para identificar áreas de problemas potenciais de um processo. O gráfico de funil é usado para visualizar como os dados são reduzidos progressivamente à medida que passam de uma fase para outra. Os dados em cada uma dessas fases são representados como partes diferentes de 100% (o todo).

Como o gráfico de pizza, o gráfico de funil também não usa eixos. Também pode ser tratado como semelhante a umstacked percent bar chart. Qualquer funil consiste na parte superior chamada cabeça (ou base) e a parte inferior chamada pescoço. O uso mais comum do gráfico de funil é na visualização de dados de conversão de vendas.

Plotly's go.Funnel()função produz rastreamento de funil. Os atributos essenciais a serem fornecidos para esta função são x ey. Cada um deles recebe uma lista de itens Python ou um array.

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()

O resultado é o seguinte -