Grafico OHLC, grafico a cascata e grafico a imbuto
Questo capitolo si concentra su altri tre tipi di grafici, inclusi OHLC, Waterfall e Funnel Chart, che possono essere creati con l'aiuto di Plotly.
Grafico OHLC
Un open-high-low-close chart (anche OHLC) è un tipo di bar charttipicamente utilizzato per illustrare i movimenti del prezzo di uno strumento finanziario come le azioni. I grafici OHLC sono utili poiché mostrano i quattro punti dati principali in un periodo. Il tipo di grafico è utile perché può mostrare uno slancio crescente o decrescente. I punti dati alto e basso sono utili per valutare la volatilità.
Ogni linea verticale sul grafico mostra l'intervallo di prezzo (il prezzo più alto e quello più basso) su un'unità di tempo, come il giorno o l'ora. I segni di spunta sporgono da ogni lato della linea indicando il prezzo di apertura (ad esempio, per un grafico a barre giornaliero questo sarebbe il prezzo di partenza per quel giorno) a sinistra e il prezzo di chiusura per quel periodo di tempo a destra.
Di seguito sono riportati i dati di esempio per la dimostrazione del grafico OHLC. Ha oggetti elenco corrispondenti ai valori massimo, minimo, aperto e chiuso come nelle stringhe di data corrispondenti. La rappresentazione della data della stringa viene convertita in oggetto data utilizzandostrtp() funzione dal modulo 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
]
Dobbiamo usare l'oggetto date sopra come parametro x e altri per i parametri di apertura, massimo, minimo e chiusura richiesti per go.Ohlc() funzione che restituisce la traccia 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)
L'output del codice è fornito di seguito:
Grafico a candele
Il candlestick chartè simile al grafico OHLC. È come una combinazione diline-chart e a bar-chart. Le caselle rappresentano lo scarto tra i valori di apertura e chiusura e le linee rappresentano lo scarto tra i valori basso e alto. I punti campione in cui il valore di chiusura è maggiore (inferiore) rispetto al valore di apertura sono chiamati crescenti (decrescenti).
La traccia Candlestrick viene restituita da go.Candlestick() function. Usiamo gli stessi dati (come per il grafico OHLC) per rendere il grafico a candele come indicato di seguito -
trace = go.Candlestick(
x = dates,
open = open_data,
high = high_data,
low = low_data,
close = close_data
)
L'output del codice sopra indicato è indicato di seguito:
Grafico a cascata
Un grafico a cascata (noto anche come flying bricks chart or Mario chart) aiuta a comprendere l'effetto cumulativo dei valori positivi o negativi introdotti in sequenza che possono essere basati sul tempo o sulla categoria.
I valori iniziali e finali vengono visualizzati come colonne con le singole rettifiche negative e positive rappresentate come passaggi mobili. Alcuni grafici a cascata collegano le linee tra le colonne per far sembrare il grafico un ponte.
go.Waterfall()la funzione restituisce una traccia Waterfall. Questo oggetto può essere personalizzato da vari argomenti o attributi con nome. Qui, gli attributi x e y impostano i dati per le coordinate xey del grafico. Entrambi possono essere un elenco Python, un array numpy o una serie di Pandas o stringhe o oggetti data e ora.
Un altro attributo è measureche è un array contenente tipi di valori. Per impostazione predefinita, i valori sono considerati comerelative. Impostalo su "totale" per calcolare le somme. Se è uguale aabsoluteazzera il totale calcolato o per dichiarare un valore iniziale dove necessario. L'attributo 'base' stabilisce dove viene disegnata la base della barra (in unità dell'asse di posizione).
Il codice seguente esegue il rendering di un grafico a 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)
L'output indicato di seguito è il risultato del codice sopra indicato.
Grafico a imbuto
I grafici a imbuto rappresentano i dati nelle diverse fasi di un processo aziendale. È un meccanismo importante nella Business Intelligence per identificare potenziali aree problematiche di un processo. Il grafico a imbuto viene utilizzato per visualizzare come i dati si riducono progressivamente mentre passano da una fase all'altra. I dati in ciascuna di queste fasi sono rappresentati come porzioni diverse del 100% (il tutto).
Come il grafico a torta, anche il grafico a imbuto non utilizza assi. Può anche essere considerato simile a un filestacked percent bar chart. Ogni imbuto è costituito dalla parte superiore chiamata testa (o base) e dalla parte inferiore denominata collo. L'utilizzo più comune del grafico a imbuto consiste nella visualizzazione dei dati di conversione delle vendite.
Plotly's go.Funnel()la funzione produce la traccia Funnel. Gli attributi essenziali da fornire a questa funzione sono x ey. A ciascuno di essi viene assegnato un elenco di elementi Python o un 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()
L'output è come indicato di seguito: