아래와 같은 ohlcv 데이터를 선그래프로 간단히 도시하는 샘플 코드
time | open | high | low | close | volumn |
2021-01-01 00:00:00 | 28923.63 | 29017.50 | 28913.12 | 28975.65 | 182.889878 |
2021-01-01 00:05:00 | 28975.65 | 28979.53 | 28846.28 | 28858.94 | 214.568104 |
2021-01-01 00:10:00 | 28858.94 | 28883.20 | 28690.17 | 28752.80 | 442.619587 |
2021-01-01 00:15:00 | 28752.80 | 28852.48 | 28720.91 | 28820.72 | 174.839779 |
2021-01-01 00:20:00 | 28822.17 | 28846.46 | 28744.09 | 28846.46 | 161.316784 |
import matplotlib.pyplot as plt
# DataFrame 기본 그래프 전시
df.close.plot() # df는 위 데이터의 DataFrame 변수

일단 날짜 컬럼을 인덱스 처리
# time 컬럼의 인덱스 처리 set_index()
df.set_index(['time'], inplace=True)
그래프의 크기, 타이틀, 색, 범례, 축라벨 설정
# 그래프 크기 설정
plt.style.use('bmh')
plt.figure(figsize=(20, 3), dpi=250) #figsize 그래프 크기, dpi 해상도
# 그래프 타이틀
plt.title("BTC Close Graph")
# 그래프 도시(라인색, 범례설정)
plt.plot(df.close, color='green', label="Close")
plt.legend() # 라벨 이후에 legend() 호출
# 축 라벨 텍스트 설정
plt.xlabel('Date')
plt.ylabel('USD')
plt.show()

subplot()을 사용하여 여러 그래프를 표현
# subplot 사용 plt.subplot(row, column, index)
plt.figure(figsize=(10, 4))
plt.subplot(211) # 211 => 행:2, 열:1, 순서:1
plt.plot(df.close)
plt.subplot(212) # 212 => 행:2, 열:1, 순서:2
plt.plot(df.high)
plt.show()

한 plot 안에 두가지 그래프를 도시하기
import talib.abstract as ta
# 이동평균값(SMA) 생산
df['SMA'] = ta.SMA(df, timeperiod=12*24*7)
plt.figure(figsize=(20,3))
# 종가 라인
ax_close = df.close.plot.line()
# 이동평균 라인
ax_sam = df.SMA.plot.line(ax = ax_close)
ax_sam.legend()

'Python' 카테고리의 다른 글
anaconda 에 ta-lib 설치 (0) | 2022.03.03 |
---|---|
Series Timestamp 형식의 데이터를 to yyyy-mm-dd HH:MM 문자열로 변환 (0) | 2022.02.25 |