Graphique OHLC, graphique en cascade et graphique en entonnoir

Ce chapitre se concentre sur trois autres types de graphiques, y compris OHLC, Waterfall et Funnel Chart, qui peuvent être créés à l'aide de Plotly.

Graphique OHLC

Un open-high-low-close graphique (également OHLC) est un type de bar chartgénéralement utilisé pour illustrer les mouvements du prix d'un instrument financier tel que les actions. Les graphiques OHLC sont utiles car ils montrent les quatre principaux points de données sur une période. Le type de graphique est utile car il peut montrer une dynamique croissante ou décroissante. Les points de données haut et bas sont utiles pour évaluer la volatilité.

Chaque ligne verticale du graphique montre la fourchette de prix (les prix les plus élevés et les prix les plus bas) sur une unité de temps, telle que le jour ou l'heure. Des graduations projettent de chaque côté de la ligne indiquant le prix d'ouverture (par exemple, pour un graphique à barres quotidien, ce serait le prix de départ pour ce jour) sur la gauche, et le cours de clôture pour cette période sur la droite.

Des exemples de données pour la démonstration du diagramme OHLC sont présentés ci-dessous. Il a des objets de liste correspondant aux valeurs haute, basse, ouverte et fermée comme sur les chaînes de date correspondantes. La représentation de date de la chaîne est convertie en objet date à l'aide destrtp() fonction du module 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
]

Nous devons utiliser l'objet de dates ci-dessus comme paramètre x et d'autres pour les paramètres d'ouverture, de haut, de bas et de fermeture requis pour go.Ohlc() fonction qui renvoie la trace 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)

La sortie du code est donnée ci-dessous -

Graphique en chandelier

le candlestick chartest similaire au graphique OHLC. C'est comme une combinaison deline-chart et un bar-chart. Les cases représentent l'écart entre les valeurs d'ouverture et de fermeture et les lignes représentent l'écart entre les valeurs basses et élevées. Les points d'échantillonnage où la valeur de fermeture est supérieure (inférieure) à la valeur ouverte sont appelés croissants (décroissants).

La trace de Candlestrick est renvoyée par go.Candlestick() function. Nous utilisons les mêmes données (que pour le graphique OHLC) pour rendre le graphique en chandeliers comme indiqué ci-dessous -

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

La sortie du code ci-dessus est mentionnée ci-dessous -

Graphique en cascade

Un graphique en cascade (également appelé flying bricks chart or Mario chart) aide à comprendre l'effet cumulatif des valeurs positives ou négatives introduites séquentiellement, qui peuvent être basées sur le temps ou sur une catégorie.

Les valeurs initiales et finales sont affichées sous forme de colonnes avec les ajustements négatifs et positifs individuels représentés sous forme de pas flottants. Certains graphiques en cascade relient les lignes entre les colonnes pour donner au graphique l'apparence d'un pont.

go.Waterfall()La fonction renvoie une trace Waterfall. Cet objet peut être personnalisé par divers arguments ou attributs nommés. Ici, les attributs x et y définissent les données pour les coordonnées x et y du graphique. Les deux peuvent être une liste Python, un tableau numpy ou une série Pandas ou des chaînes ou des objets date / heure.

Un autre attribut est measurequi est un tableau contenant des types de valeurs. Par défaut, les valeurs sont considérées commerelative. Réglez-le sur «total» pour calculer les sommes. S'il est égal àabsoluteil réinitialise le total calculé ou déclare une valeur initiale si nécessaire. L'attribut 'base' définit l'endroit où la base de la barre est dessinée (en unités d'axe de position).

Le code suivant rend un graphique en cascade -

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)

La sortie mentionnée ci-dessous est le résultat du code donné ci-dessus.

Graphique en entonnoir

Les graphiques en entonnoir représentent des données à différentes étapes d'un processus métier. Il s'agit d'un mécanisme important dans la Business Intelligence pour identifier les domaines problématiques potentiels d'un processus. Le graphique en entonnoir permet de visualiser comment les données se réduisent progressivement au fur et à mesure qu'elles passent d'une phase à une autre. Les données de chacune de ces phases sont représentées sous forme de portions différentes de 100% (le tout).

Comme le graphique à secteurs, le graphique en entonnoir n'utilise pas non plus d'axes. Il peut également être traité comme similaire à unstacked percent bar chart. Tout entonnoir se compose de la partie supérieure appelée tête (ou base) et de la partie inférieure appelée cou. L'utilisation la plus courante du graphique en entonnoir consiste à visualiser les données de conversion des ventes.

Plotly's go.Funnel()La fonction produit une trace d'entonnoir. Les attributs essentiels à fournir à cette fonction sont x ety. Chacun d'eux se voit attribuer une liste d'éléments Python ou un tableau.

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

La sortie est comme donnée ci-dessous -