728x90
이번 포스팅에서는 내가 실제로 포트폴리오에 담고 있는 KT 종목의 주가를 네이버 파이낸스 페이지에서 가져와서 Ploty라는 반응형 그래프를 그리도록 하겠다.
한국거래소 krx.co.kr 사이트에서 국내 상장 종목 전체 가져오기
import pandas as pd
stock_code = pd.read_html('http://kind.krx.co.kr/corpgeneral/corpList.do?method=download', header=0)[0]
stock_code=stock_code[['회사명','종목코드']]
stock_code=stock_code.rename(columns={'회사명':'company','종목코드':'code'})
stock_code['code']=stock_code.code.map('{:06d}'.format)
네이버 파이낸스에서 KT 주가 가져오기
company='케이티'
code = stock_code[stock_code['company']==company].code.values[0].strip()
df = pd.DataFrame()
for page in range(1,51):
url = 'http://finance.naver.com/item/sise_day.nhn?code={code}'.format(code=code)
url = '{url}&page={page}'.format(url=url, page=page)
df = df.append(pd.read_html(url, header=0)[0], ignore_index=True)
df=df.dropna()
df=df.rename(columns={'날짜':'date','종가':'close','전일비':'diff','시가':'open','고가':'high','저가': 'low', '거래량': 'volume'})
df[['close', 'diff', 'open', 'high', 'low', 'volume']] = df[['close', 'diff', 'open', 'high', 'low', 'volume']].astype(int)
df['date'] = pd.to_datetime(df['date'])
df = df.sort_values(by=['date'], ascending=True)
df를 출력하면 아래와 같이 2018년 11월 20일 이후부터 KT 주가를 가져올 수 있는 점을 확인할 수 있다.
Matplotlib으로 단순 그래프 그리기
import matplotlib.pyplot as plt
%matplotlib inline
import plotly
import plotly.graph_objects as go
import plotly.express as px
plt.figure(figsize=(16,8))
plt.plot(df['date'], df['close'])
plt.xlabel('price')
plt.ylabel('close')
plt.show()
Matplotlib으로 KT 주가를 단순하게 그려봤는데 내가 왜 여기에 투자했는지 모를 정도로 지난 2년간 하향 추세를 보여주고 있는 상황이다.
Plotly로 반응형 그래프 그리기
fig = px.line(df, x='date', y='close', title='{}의 종가(close) Time Series'.format(company))
fig.update_xaxes(
rangeslider_visible=True,
rangeselector=dict(
buttons=list([
dict(count=1, label="1m", step="month", stepmode="backward"),
dict(count=3, label="3m", step="month", stepmode="backward"),
dict(count=6, label="6m", step="month", stepmode="backward"),
dict(step="all")
])
)
)
fig.show()
그래프 왼쪽 상단에 1m, 3m, 6m, all 버튼을 클릭하면 기간별로 주가 그래프를 조정할 수 있고, 아래 두 번째 그래프 스케일을 조정함으로써도 동일하게 기간별로 주가를 잘라서 볼 수 있는 장점이 있다.
728x90
반응형
'문송충의 코딩하기 > 파이썬 데이터 분석' 카테고리의 다른 글
네이버에서 국내 ETF 종목 정보 가져와서 분석 with Python (0) | 2021.03.20 |
---|---|
[파이썬] - 공공데이터 API에서 시도별 미세먼지 PM10 데이터를 가져와서 Folium으로 시각화하기 (0) | 2020.11.28 |
[파이썬] - 서울 2호선 지하철 역별 승하차 승객 수 Folium으로 시각화 (0) | 2020.11.27 |
[파이썬] - 넥슨 카트라이더 API를 활용해서 내 카트라이더 매치 정보 가져오기 #1 (1) | 2020.11.25 |
[파이썬] - Pykrx 패키지를 통해 국내 상장 종목별 외국인 보유 비중 확인 (0) | 2020.11.24 |
댓글