Gráficos de velas en Plotly

Vaibhav Vaibhav 20 junio 2023
  1. Velas en Python
  2. Mostrar un gráfico de volumen junto con el gráfico de velas japonesas
Gráficos de velas en Plotly

La ciencia de datos es una rama de las ciencias de la computación que utiliza algoritmos, procesos, sistemas, matemáticas y procedimientos científicos para extraer información y conocimientos de datos estructurados, no estructurados y ruidosos y utiliza esos aprendizajes para resolver problemas comerciales y crear soluciones basadas en el aprendizaje.

Python y R son dos lenguajes de programación famosos en la comunidad de ciencia de datos debido al soporte y las capacidades que ofrecen estos lenguajes.

Dado que la visualización de datos es un componente clave de la ciencia de datos, Python ofrece una biblioteca, Plotly, que nos ayuda a crear gráficos y mapas interactivos.

Admite varios tipos de gráficos, como gráficos de dispersión, gráficos de líneas, gráficos de barras, gráficos circulares, gráficos de burbujas, barras de error, histogramas, histogramas 2D, mapas de calor, velas japonesas, mapas de coropletas de Mapbox, clustergramas, etc.

Este artículo habla sobre una de las tramas que admite Plotly, a saber, las velas japonesas.

Velas en Python

Un gráfico de velas japonesas es un tipo de gráfico financiero que describe los valores alto, bajo, abierto y cerrado para una determinada coordenada x. El cuadro de una vela representa el diferencial entre los valores de apertura y cierre.

Las líneas que se extienden por los extremos de las cajas representan la diferencia entre los valores alto y bajo.

Podemos crear gráficos de velas usando Plotly. Consulte el siguiente código de Python para ver un ejemplo simple.

import pandas as pd
from datetime import datetime
import plotly.graph_objects as go

dataFrame = pd.read_csv(
    "https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv"
)

figure = go.Figure(
    data=[
        go.Candlestick(
            x=dataFrame["Date"],
            open=dataFrame["AAPL.Open"],
            high=dataFrame["AAPL.High"],
            low=dataFrame["AAPL.Low"],
            close=dataFrame["AAPL.Close"],
        )
    ]
)
figure.show()

Producción:

Gráfico de velas de acciones de Apple

Los datos en el archivo se ven de la siguiente manera. Las siguientes son las primeras diez líneas del archivo CSV.

Date,AAPL.Open,AAPL.High,AAPL.Low,AAPL.Close,AAPL.Volume,AAPL.Adjusted,dn,mavg,up,direction
2015-02-17,127.489998,128.880005,126.919998,127.830002,63152400,122.905254,106.7410523,117.9276669,129.1142814,Increasing
2015-02-18,127.629997,128.779999,127.449997,128.720001,44891700,123.760965,107.842423,118.9403335,130.0382439,Increasing
2015-02-19,128.479996,129.029999,128.330002,128.449997,37362400,123.501363,108.8942449,119.8891668,130.8840887,Decreasing
2015-02-20,128.619995,129.5,128.050003,129.5,48948400,124.510914,109.7854494,120.7635001,131.7415509,Increasing
2015-02-23,130.020004,133,129.660004,133,70974100,127.876074,110.3725162,121.7201668,133.0678174,Increasing
2015-02-24,132.940002,133.600006,131.169998,132.169998,69228100,127.078049,111.0948689,122.6648335,134.2347981,Decreasing
2015-02-25,131.559998,131.600006,128.149994,128.789993,74711700,123.828261,113.2119183,123.6296667,134.0474151,Decreasing
2015-02-26,128.789993,130.869995,126.610001,130.419998,91287500,125.395469,114.1652991,124.2823333,134.3993674,Increasing
2015-02-27,130,130.570007,128.240005,128.460007,62014800,123.510987,114.9668484,124.8426669,134.7184854,Decreasing
...

A continuación, utilizando la clase Figura, creamos una instancia en la que establecemos la propiedad datos en un objeto de la clase Candelabro. Para la instancia de la clase Candlestick, establecemos los valores x en la columna Date, open en la columna AAPL.Open, high en la columna AAPL.High, low en columna AAPL.Low y close a la columna AAPL.Close del archivo CSV.

A continuación, mostramos el gráfico de velas utilizando el método show() disponible en la instancia Figura.

Mostrar un gráfico de volumen junto con el gráfico de velas japonesas

Para mostrar un gráfico de volumen junto con el gráfico de velas, podemos agregar un gráfico secundario más pequeño al gráfico de velas. Este gráfico residirá debajo del gráfico de velas japonesas y contendrá detalles sobre el volumen de existencias vendido diariamente.

Para hacer una estructura de cuadrícula, usaremos el método make_subplots() y especificaremos 2 filas y 1 columnas. A continuación, crearemos un diagrama de velas, como se explicó anteriormente, y un diagrama de barras para representar el volumen.

Por último, agregaremos ambas parcelas a la cuadrícula o subparcelas que acabamos de crear y mostraremos ambas parcelas. Tenga en cuenta que la declaración figure.update(layout_xaxis_rangeslider_visible = False) deshabilita el control deslizante de rango ofrecido por el gráfico de velas japonesas.

Consulte el siguiente código de Python para lo mismo.

import pandas as pd
import plotly.graph_objects as go
from plotly.subplots import make_subplots

dataFrame = pd.read_csv(
    "https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv"
)

figure = make_subplots(
    rows=2, cols=1, shared_xaxes=True, vertical_spacing=0.05, row_width=[0.2, 0.7]
)
appleStockPlot = go.Candlestick(
    x=dataFrame["Date"],
    open=dataFrame["AAPL.Open"],
    high=dataFrame["AAPL.High"],
    low=dataFrame["AAPL.Low"],
    close=dataFrame["AAPL.Close"],
)
volume = go.Bar(x=dataFrame["Date"], y=dataFrame["AAPL.Volume"], showlegend=False)
figure.add_trace(appleStockPlot, row=1, col=1)
figure.add_trace(volume, row=2, col=1)
figure.update(layout_xaxis_rangeslider_visible=False)
figure.show()

Producción:

Gráfico de velas de acciones de Apple con volumen

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.