이전 포스트에서 삼성전자 주가 그래프를 간단히 그려보았고, 이번에는 여러 종목의 가격을 불러드려 볼 것이다.
그전에 StockListing 테이블을 한번 확인해보자.
StockListing 확인
# KRX: 종목 전체
# KOSPI
# KOSDAQ
# KONEX
# NASDAQ
# NYSE
# SP500
df_krx= fdr.StockListing("KOSPI")
df_krx.head()
코스피 종목 테이블의 head()를 불러오면 다양한 컬럼이 있다.
컬럼에 대해서 따로 설명이 필요 없을 정도로 잘 나온다. 섹터와 산업 그리고 상장일까지 나오고 대표 이름까지 나온다...
(대표 이름까지?..)
그럼 StockListing과 DataReader의 정보를 같이 불러와보자
두 개의 테이블 Concat을 활용해서 종목 가격 가지고 오기
# 종목 목록 만들어주기
stock_list = {'삼성전자': '005930', '카카오':'035720', 'NAVER': '035420'}
stock_list
누구나 가지고 있을 것 같은 주식 종목을 불러들일 것이다.
리스트 형태로 :를 활용하면 value와 key값을 바로 나눌 수 있다.
# dict 형식으로 만들어주면 value 값과 key값으로 종목 명과 종목 코드를 나누어 가지고 올수있음
type(stock_list)
type이 dict라고 나오게 되는데 dictionary를 의미하는 것이고 dictionary의 타입 자체가 key와 value로 이루어진 집합?이라고 보면 될 것 같다.
# 종목의 종가 수집 , 반복문 사용
stock_info = []
for item_code in stock_list.values():
close = fdr.DataReader(item_code, "2021", '2022')['Close']
stock_info.append(close)
그럼 위에서 지정이 된 stock_info를 반복문을 통해 날짜까지 지정해서 가지고 온다.
아직까지도 반복문에 대해서 뭐 배운 적이 없고, 다 인용하면서 배웠기 때문에 아직도 헷갈린다....
# 수집한 리스트를 aixs =1 (컬럼)기준으로 concat
# column 은 key값인 종목 명을 사용
df = pd.concat(stock_info, axis=1)
df.columns = stock_list.keys()
df
반복문이 지정이 되었고 axis=1을 통해서 칼럼으로 concat을 해준다. 옆으로 붙여준다는 뜻이다.
이런 테이블이 완성이 된다. 옆으로 내가 고른 종목이 날짜에 맞춰서 concat이 된 것을 볼 수 있다.
각 종목별 시각화
이전 포스트처럼 간단한 시각화를 통해서 주가 흐름을 체크해보자.
df.plot()을 바로 실행해보았는데 수많은 warning과 함께 그래프가 나왔다.
잘 나오긴 했지만 한글 폰트에 대해서 인식이 안된 거다.
그래서 warning이 나오고 그래프에서도 이름을 한글로 정확하게 변환을 못했다.
한글 폰트 설정
# 한글이 깨지는 문제 해결을 위해 폰트 설정 필요
def get_font_family():
"""
시스템 환경에 따른 기본 폰트명을 반환하는 함수
"""
import platform
system_name = platform.system()
# colab 사용자는 system_name이 'Linux'로 확인
if system_name == "Darwin" :
font_family = "AppleGothic"
elif system_name == "Windows":
font_family = "Malgun Gothic"
else:
!apt-get install fonts-nanum -qq > /dev/null
!fc-cache -fv
import matplotlib as mpl
mpl.font_manager._rebuild()
findfont = mpl.font_manager.fontManager.findfont
mpl.font_manager.findfont = findfont
mpl.backends.backend_agg.findfont = findfont
font_family = "NanumBarunGothic"
return font_family
# 시각화 할때 한글 폰트 가지고 오기 위한 함수
import matplotlib.pyplot as plt
#위의 폰트 불러와서 가지고오기
font_family = get_font_family()
#폰트 설정
plt.rc("font", family =font_family)
이전에 저장해놨던 폰트 설정 함수를 바로 써준다. 일일이 설명하기에는 다른 블로그들이 설명이 잘 되어있기 때문에...
맥 사용 유저면 ApplieGothic이라는 폰트를 통해 한글화가 될 것이다.
다시 df.plot() 그려주면
한글이 깨지지 않고 잘 나온다.
'Data Analysis > Python_Stock' 카테고리의 다른 글
[Python_stock] FinanceDataReader 활용 6. 특정날짜조회, 누적 수익률 (0) | 2021.10.25 |
---|---|
[Python_stock] FinanceDataReader 활용 5. B% (Bollinger %) (0) | 2021.10.21 |
[Python_stock] FinanceDataReader 활용 4. 볼린저 밴드 (Bollinger Band) (0) | 2021.10.20 |
[Python_stock] FinanceDataReader 활용 3. 2축(y축 양쪽), 수익률그래프 그리기 (0) | 2021.10.17 |
[Python_stock] FinanceDataReader 활용1. 삼성전자 주가 그리기 (0) | 2021.10.13 |