# 가져오고자하는 정보에 대한 항목 리스트를 작성한다. investments_list = ['BTC-USD']
# 시작과 끝 날짜 변수를 선언한다. start = datetime.datetime(2010, 1, 1) end = datetime.datetime(2021, 5, 16)
# 위에서 선언한 변수를 인수로 넣어 야후 파이넨스로부터 데이터를 다운받는다. df = yf.download(investments_list, start = start, end = end) df
날짜별 시가와 고가, 저가, 종가, 조정된 종가 등의 정보들을 확인 할 수 있다. 마지막 Volume은 일일 거래 양이다.
MINI CHALLENGE #2 Ethereum data를 야후 파이낸스에서 다운받아서 출력해보고, BTC, ETH 그리고 LTC 코인에 대한 정보도 야후 파이낸스에서 다운받아서 출력해보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
# 출력 1) Ethereum data를 야후 파이낸스에서 다운받아서 출력 investments_list = ['BTC-USD'] start = datetime.datetime(2010, 1, 1) end = datetime.datetime(2022, 3, 30)
df = yf.download(investments_list, start = start, end = end) df
# 출력 2) BTC, ETH 그리고 LTC 코인에 대한 정보도 야후 파이낸스에서 다운받아서 출력 investments_list = ['BTC-USD','ETH-USD','LTC-USD'] start = datetime.datetime(2010, 1, 1) end = datetime.datetime(2022, 3, 30)
df = yf.download(investments_list, start = start, end = end) df
다중 플롯(Multiple plots) 구현하기
처음 matplotlib로 간단한 그래프를 그렸을 때, df.plot()의 인수로 x축 데이터 명, y축 데이터 명, linewidth, figsize를 정의해줬다. 여기서 다중 플롯을 구현해주기 위해서는 인수 중에서 y를 문자열인 단일 인수가 아닌 배열의 형태로 넘겨주면 된다.
그럼 subplots 인수의 값을 False로 하면 어떻게 될까? 실행하기 전에 내 예상은 일단 y축 데이터에 대한 데이터를 특정하지 않았기 때문에 모든 코인에 대해서 한 그래프에 표시가 되지 않을까? 마치 다중 플롯(Multiple plots)처럼.. 실행해보니, figsize의 y축 높이를 길게 잡아서 그런지 좀 길죽하게 나오긴 했어도 예상했던 것처럼 다중 플롯의 형태로 세 개의 코인 정보가 하나의 그래프에 모두 표시됨을 확인할 수 있었다. (y = [...all args...]) == (~y and subplots == False)
산점도(SCATTERPLOT)
산점도 구상하기 연습의 일환으로 비트코인과 이더리움 사이의 산점도를 구상해보자.
1 2 3 4
# 비트코인과 이더리움의 날짜별 수익 # 비트코인과 이더리움의 수익에 대한 정보가 점으로 표시 # 각 점들은 다양한 날짜나 행들을 가르킨다. daily_return_df.plot.scatter('BTC', 'ETH', grid = True, figsize = (12, 7))
PI CHART
각기 다른 비율로 투자한 금액을 원 모양으로 각 각 다르게 할당해서 표현
1 2 3 4 5 6
# 각 각의 가상화폐를 각기 다른 비율로 투자 my_dict = {'allocation %': [20, 55, 5, 17, 3]} crypto_df = pd.DataFrame(data = my_dict, index = ['BTC', 'ETH', 'LTC', 'XRP', 'ADA'])
히스토그램은 기본적으로 데이터를 대변해주는 역할을 한다. 다양한 높이들의 바(bars)가 사용되고, 각 각의 바 그룹 숫자들은 특정 범위 안에 들어간다.
표준편차 : 자료가 평균을 중심으로 얼마나 퍼져있는지를 나타낸다.
1 2 3 4 5 6 7 8 9 10 11 12 13
# 평균 avg = daily_return_df['BTC'].mean() # 표준편차 sigma = daily_return_df['BTC'].std()
# plot의 figsize 정의 plt.figure(figsize = (20, 15)) # daily_return_df['BTC'].plot.hist(bins = 50) # bins에는 원하는 칸의 수를 입력해서 한 칸의 크기를 조절할 수 있다. # bins 속성과 함께 alpha 속성으로 0.5(최대값 1) 값을 넣어서 색을 흐리게도 할 수 있다. daily_return_df['BTC'].plot.hist(bins = 50, alpha = 0.5) plt.title('Histogram: mu=' + str(mu) + ', sigma=' + str(sigma))
아래 히스토그램 그래프를 통해 비트코인은 위험도가 높은 투자라는 것을 보여준다. 평균적이지는 않지만, 하루에 20~25%의 수익을 내는 경우도 있으며, 그 이상의 수익을 내는 경우도 있다. 하지만 수익이 2% 이하로 떨어지는 경우가 많은 것을 알 수 있다.
MINI CHALLENGE #4 ETH에 대한 히스토그램을 bins=30, 색상은 빨간색으로 해서 출력해보기