Plotly의 촛대 차트

Vaibhav Vaibhav 2023년6월20일
  1. Python의 촛대
  2. 촛대 플롯과 함께 볼륨 플롯 표시하기
Plotly의 촛대 차트

데이터 과학은 알고리즘, 프로세스, 시스템, 수학 및 과학적 절차를 사용하여 구조화, 비구조화 및 시끄러운 데이터에서 통찰력과 지식을 추출하고 이러한 학습을 사용하여 비즈니스 문제를 해결하고 학습 기반 솔루션을 만드는 컴퓨터 과학 분야입니다.

Python과 R은 이러한 언어가 제공하는 지원 및 기능으로 인해 데이터 과학 커뮤니티에서 유명한 두 가지 프로그래밍 언어입니다.

데이터 시각화는 데이터 과학의 핵심 구성 요소이므로 Python은 대화형 차트와 지도를 만드는 데 도움이 되는 라이브러리인 Plotly를 제공합니다.

산점도, 선 차트, 막대 차트, 파이 차트, 거품 차트, 오차 막대, 히스토그램, 2D 히스토그램, 히트맵, 캔들스틱, Mapbox choropleth 맵, 클러스터그램 등과 같은 다양한 유형의 플롯을 지원합니다.

이 기사에서는 Plotly가 지원하는 플롯 중 하나인 촛대에 대해 설명합니다.

Python의 촛대

캔들스틱 차트는 주어진 x 좌표에 대한 high, low, openclose 값을 설명하는 재무 차트 유형입니다. 캔들스틱의 상자는 시가종가 값 사이의 스프레드를 나타냅니다.

상자 끝을 확장하는 선은 낮은 값과 높은 값 사이의 스프레드를 나타냅니다.

Plotly를 사용하여 캔들스틱 차트를 만들 수 있습니다. 간단한 예제는 다음 Python 코드를 참조하십시오.

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

출력:

Apple 주식 캔들스틱 플롯

파일의 데이터는 다음과 같습니다. 다음은 CSV 파일의 처음 10줄입니다.

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
...

다음으로 Figure 클래스를 사용하여 data 속성을 Candlestick 클래스의 개체로 설정하는 인스턴스를 만듭니다. Candlestick 클래스 인스턴스의 경우 x 값을 Date 열로, openAAPL.Open 열로, highAAPL.High 열로, lowAAPL.High 열로 설정합니다. AAPL.Low 열 및 CSV 파일의 AAPL.Close 열에 대한 close.

다음으로 Figure 인스턴스에서 사용할 수 있는 show() 메서드를 사용하여 캔들스틱 차트를 표시합니다.

촛대 플롯과 함께 볼륨 플롯 표시하기

촛대 플롯과 함께 볼륨 플롯을 표시하기 위해 촛대 플롯에 더 작은 하위 플롯을 추가할 수 있습니다. 이 플롯은 촛대 플롯 아래에 있으며 매일 판매되는 재고량에 대한 세부 정보를 포함합니다.

그리드 구조를 만들기 위해 make_subplots() 메서드를 사용하고 2 행과 1 열을 지정합니다. 다음으로 위에서 설명한 대로 캔들스틱 플롯과 볼륨을 나타내는 막대 플롯을 만듭니다.

마지막으로 방금 생성한 그리드 또는 서브플롯에 두 플롯을 추가하고 두 플롯을 모두 표시합니다. figure.update(layout_xaxis_rangeslider_visible = False) 문은 촛대 플롯에서 제공하는 범위 슬라이더를 비활성화합니다.

동일한 내용은 다음 Python 코드를 참조하십시오.

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

출력:

볼륨이 있는 Apple 주식 캔들스틱 플롯

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.