サムネがコーヒーの記事は書きかけです。

BitFlyer APIから取得した情報をリアルタイムに描画するスクリプト

Matplotlibを使用したリアルタイム描画

以下のスクリプトを実行することで、取得した何らかのデータをリアルタイムで描画できます。

import numpy as np
import matplotlib.pyplot as plt

xs,y = [], []
fig, ax = plt.subplots()
interval = 5
for sec in range(100):
    xs.append(sec*interval)
    y.append(np.random.random())
    ax.plot(xs, y, color='C0', linestyle='-')
    ax.set_xlabel('sec')
    ax.set_ylabel('Y')
    plt.pause(interval)

BitFlyer APIとの連携

今回はXRP/JPYの通貨ペアで試します。

API_Key = "*********"
API_Secret = "************" 
import ccxt
from pprint import pprint
import matplotlib.pyplot as plt

bitflyer = ccxt.bitflyer({'apiKey':API_Key ,'secret':API_Secret})

market_info = bitflyer.load_markets() 

symbol = "XRP/JPY"

xs, y1, y2 = [], [], []

fig, ax = plt.subplots()
sec = 0
interval = 5
while True:
    sec += interval
    xs.append(sec)
    y1.append(bitflyer.fetch_ticker(symbol)["ask"])
    y2.append(bitflyer.fetch_ticker(symbol)["bid"])
    ax.plot(xs, y1, color='blue', linestyle='-')
    ax.plot(xs, y2, color='red', linestyle='-')
    ax.scatter(xs,y1,s = 30,color = "blue")
    ax.scatter(xs,y2,s = 30,color = "red")
    ax.set_xlabel('sec')
    ax.set_ylabel('JPY/XRP')
    plt.pause(interval=interval)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です