파이썬의 'Plotly' 라이브러리를 이용하여 삼성전자의 캔들스틱(봉차트)그리기

금융 분야에서 캔들스틱 차트는 주가 정보를 표시하는 인기 있는 방법으로, 주어진 기간 동안 시가, 고가, 저가 및 종가를 보여준다. 이 유형의 차트는 특정 기간 동안의 주식 가격 움직임에 대한 개요를 제공하며 패턴과 추세를 식별하는 데 도움이 된다.

이 포스트에서는 Python에서 Plotly 라이브러리와 Pandas를 사용하여 삼성전자 주가에 대한 캔들스틱 차트를 그리는 방법을 살펴본다.

삼성전자의 주가를 다운로드 하는 방법은 이전 포스트 - Python과 Yahooquery Library를 이용한 삼성전자 주가 다운로드에서 확인 할 수 있다.

삼성전자 캔들스틱 차트
완성된 삼성전자 캔들스틱 차트

필수 라이브러리 가져오기

첫 번째 단계는 필요한 라이브러리를 가져오는 것이다. 이 예제에서는 pandas 라이브러리를 사용하여 csv 파일을 읽은뒤 일부 데이터를 조작하고 plotly.graph_objs 라이브러리를 사용하여 촛대 차트를 그릴 것이다.

import pandas as pd
import plotly.graph_objs as go

 

데이터 읽기 및 전처리

삼성 주가가 포함된 csv 파일을 읽고 일부 데이터의 전처리 작업을 수행한다. pandas read_csv() 메서드를 사용하여 파일을 읽고, to_datetime() 메서드를 사용하여 날짜 열을 datetime 형식으로 변환하고, set_index() 메서드를 사용하여 날짜 열을 데이터 프레임의 인덱스로 설정한다.

df = pd.read_csv("samsung_stock_prices.csv")
df["date"] = pd.to_datetime(df["date"])
df = df.set_index("date")

 

캔들스틱 차트 만들기

전처리 완료된 데이터를 이용하여 캔들스틱 차트를 만든다. x매개변수를 사용하여 날짜를 지정하고 open, high, low, close 매개변수를 사용하여 시가, 고가, 저가, 종가를 각각 지정한다.

또한 increasing및 decreasing매개변수를 지정하여 캔들바의 색상을 지정한다. 종가가 시가보다 높으면 캔들이 빨간색(increasing)으로 표시되고, 시가가 종가보다 높으면 캔들이 파란색(decreasing)으로 표시된다.

inc = df.close > df.open
dec = df.open > df.close

trace = go.Candlestick(x=df.index,
                       open=df.open,
                       high=df.high,
                       low=df.low,
                       close=df.close,
                       increasing=dict(line=dict(color= 'red')),
                       decreasing=dict(line=dict(color= 'blue')))

 

차트 레이아웃 만들기

다음으로 제목, x축 제목 및 y축 제목을 포함하는 차트의 레이아웃을 만든다.

layout = go.Layout(title="Samsung Stock Prices (Candlestick Chart)",
                   xaxis_title="Date",
                   yaxis_title="Price (KRW)")

 

그리기 및 차트 표시

마지막으로 go.Figure 클래스를 사용하여 그림을 만들고 show()메서드를 사용하여 차트를 표시한다.

fig = go.Figure(data=[trace], layout=layout)
fig.show()
© Copyright 2023 CLONE CODING