Pythonでローソク足をプロットする
今回はPythonで↓のようなローソク足をプロットする方法を紹介したいと思います。
プロットするデータを準備する
#必要なライブラリをインポートする import pandas as pd import json import requests import datetime import pandas_datareader as web import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt import pandas as pd import seaborn as sns %matplotlib inline import mpl_finance as mpf # bitcoinの価格情報を取得して扱いやすいように整形する r=requests.get('https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=jpy&days=max') gecko=json.loads(r.text) bitcoin=pd.DataFrame(gecko['prices']) t=[] for i in bitcoin[0]: a=datetime.datetime.fromtimestamp(i/1000, datetime.timezone.utc) b = a + datetime.timedelta(hours=9) t.append(b) bitcoin2=bitcoin[1] bitcoin2.index=t #ビットコインのOHLCを算出する bitcoin_ohlc=bitcoin2.resample('W').ohlc()
これでデータの用意はできたのでいよいよ本題のローソク足のプロットに入っていきます。
pandasでローソク足をプロットする
################ローソク足と移動平均をプロットする######## #日経平均の株価データの一部をdfに格納する df=bitcoin_ohlc[285:315].copy() #描画範囲を指定する fig = plt.figure() fig = plt.figure(figsize=(9, 4)) ax = fig.add_subplot(1, 1, 1) # candlestickを使ってローソク足をプロットする mpf.candlestick2_ohlc(ax, df["open"], df["high"], df["low"], df["close"], width=0.3, colorup="b", colordown="r") #最初の月曜日のインデックスを取得する xtick0 = (5-df.index[0].weekday())%5 #X軸のインデックスを平日のみにする plt.xticks(range(xtick0,len(df),5), [x.strftime('%Y-%m-%d') for x in df.index][xtick0::5]) #終値の移動平均線をプロットする plt.plot(bitcoin_ohlc['close'].rolling(5).mean().values[285:315],label='rolling(5)') #終値の移動平均線をプロットする plt.plot(bitcoin_ohlc['close'].rolling(25).mean().values[285:315],color='red',label='rolling(25)') plt.tight_layout() #グラフに格子を入れる plt.grid(which='both') #凡例を表示する plt.legend() #グラフを表示する plt.show()
コメント