bitFlyer의 Echo API를 사용하여 Bitcoin의 실시간 속도를 시각화 (1)

소개



이제 가상 통화에 흥미가 나왔기 때문에 bitFlyer에 등록했습니다.
어차피 등록했기 때문에 API를 만져 보려고 생각하고, Echo API를 간단하게 사용할 수 있을 것 같았기 때문에 Bitcoin의 리얼타임 레이트를 Matplotlib를 사용해 가시화해 보았습니다.

실행 환경


  • 기계: MacBook Pro (Retina, 13-inch, Mid 2014)
  • CPU: 2.8 GHz Intel Core i5
  • 메모리: 16GB 1600MHz DDR3
  • 프로그래밍 언어: Python 3.6

  • 프로그램



    main.py
    import requests
    import json
    import matplotlib.pyplot as plt
    from matplotlib.animation import FuncAnimation
    from matplotlib.font_manager import FontProperties
    from datetime import datetime
    
    # エンドポイント
    end_point = 'https://bitflyer.jp/api/echo/price'
    
    # APIからデータ取得
    response = requests.get(end_point)
    rate = json.loads(response.text)
    
    # 日本語を表示するためにフォントを設定
    fp = FontProperties(fname='ipaexg.ttf', size=15)
    
    # ウィンドウを描画
    fig = plt.figure(figsize=(12,8))
    
    # データ用の配列を初期化
    time_axis = [datetime.now() for _ in range(120)]
    mid = [rate['mid'] for _ in range(120)]
    bid = [rate['bid'] for _ in range(120)]
    ask = [rate['ask'] for _ in range(120)]
    
    # コールバック関数
    def plot(loop_count):
    
        # グラフをリフレッシュ
        plt.cla()
    
        # APIからデータ取得
        response = requests.get(end_point)
        rate = json.loads(response.text)
    
        # 配列の先頭を削除
        time_axis.pop(0)
        mid.pop(0)
        bid.pop(0)
        ask.pop(0)
    
        # 配列の最後にデータを追加
        time_axis.append(datetime.now())
        mid.append(rate['mid'])
        bid.append(rate['bid'])
        ask.append(rate['ask'])
    
        # プロット
        plt.plot(time_axis, mid, label='仲値')
        plt.plot(time_axis, bid, label='買取価格')
        plt.plot(time_axis, ask, label='販売価格')
    
        # ラベル配置
        plt.legend(loc='upper left', bbox_to_anchor=(1.05, 1), borderaxespad=0, prop=fp) 
        plt.subplots_adjust(right=0.8)
    
    # 1000ms(1s)でアニメーションを更新
    ani = FuncAnimation(fig, plot, interval=1000)
    
    # 描画
    plt.show()
    

    ipaexg.ttf는 아래에서 다운로드하십시오.
    htps : // 이파후 t. 가득. . jp / ld / 가득 x t / tw ㄉ d. HTML

    실행 결과



    좋은 웹페이지 즐겨찾기