Python で 豪ドル/円チャ-ト を探求

ロ-ソク足本体の表示

ここまでで、予測日/予測値の準備ができました。
引き続きロ-ソク足本体の表示をしていきます。
まずはそのスクリプトを表示します。


  import matplotlib.pyplot as plt #①
  from mplfinance.original_flavor import candlestick_ohlc
  ohlc = zip(
  Idx, Open, High, Low, Close) #②
  fig = plt.figure(
   figsize=(8.34, 5.56)) #③
  ax = fig.add_subplot(1,1,1)  #④
  ax.grid()
  plt.plot(
   Idx, p(Idx),
   Idx5, p(Idx5),'bo')
  candlestick_ohlc(
   ax, ohlc, width=0.5, alpha = 1,   
   colorup='r', colordown='g') #⑤
  plt.xticks(xD, xDate)        #⑥
  plt.title('AUS$ / JPY chart')#⑦
  plt.xlabel('Date')
  plt.ylabel('Yen')
  plt.savefig(
   '/home/yamada/public_html/manep-img/mane_chart_go.png') #⑧

  1. #① candlestick_ohlc 読込み

    外部モジュ-ル matplotlib の中の pyplot モジュールを読み込んで これを plt と呼びますと宣言します。
    その後、mplfinance の中の mplfinance.original_flavor から candlestick_ohlc を読込みます。
    ちょっと余談になりますが、大昔の説明では、
    import matplotlib.finance as mpf
    と書いてあるのですが現在は使用不可のようです。
    その後、mpl_finance を使用するようになり
    from mpl_finance import candlestick_ohlc
    のように書いていました。
    現在はさらに変更され mpl_finance は mplfinance に代わっています。

  2. #② OHLC 形式に変換

    xl_df は DaraFrame 書式、これを OHLC(Zip)形式に変換します。
    このあと、candlestick_ohlc()メソッドを使用してロ-ソク足を表示します。
    リストの要素を取得する場合は for 文を使用するのが一般的ですが、 複数のリストの要素をまとめて取得したい場合もあります。
    python 組込 zip 関数は複数のリストを同時に取得したい場合に使用する関数です。
    zip 関数は以下のように引数に取得したいリスト名を指定します。
    ohlc = zip(Idx, Open, High, Low, Close)
    これでロ-ソク足を表示するための前準備は完了です。

  3. #③ キャンパス作成

    figure はグラフや文字など、全てが描かれるウインドウ(またはページ)を指します。
    全ての要素の最上位レベルのコンポーネント figure インスタンス fig を生成します。
    fig = plt.figure(figsize=(8.34, 5.56))
    のように書くことができます。
    figsize のデフォルトは、(8,6) に設定されています。
    単位インチ(1in = 25.4mm)です。
    でも、ピクセルサイズで図の大きさを指定したいこともありますよね。
    こんな時は
    Jupyter Notebook 上で作業をする場合は figsize = ピクセル÷72
    とすればよいようです。
    600×400 ピクセルの図にしたいならば
    figsize-横 = 600÷72 = 8.33333
    figsize-縦 = 400÷72 = 5.55555
    にします。
    今回は Python スクリプト上で作業をしていますので
    figsize = 600÷100 = 6
    となります。
    これは、
    dpi = dots per inch
    が異なるせいです。
    Python で実行すると dpi は 100、
    Jupyter Notebook で実行すると dpi は 72
    になります。
    今回は 834×556 ピクセルの図にします。
    細かいですね。
    どうしてこうなるの!
    描かれる図の余白部分を除いた横幅を 720(360×2)ピクセル、縦横比を 2:3 にしたかっただけです。

  4. #④ 図の配置

    図を figure 内の枠のどこに配置するか指定します。
    figure.add_subplot()
    を使用すると、描画するグラフの配置インスタンスを作成することができます。
    ここでは、fig キャンパスの中の、 (1,1,1) すなわち「1行 1列の1つ目」に配置インスタンス ax を作成しました。
    ax = fig.add_subplot(1,1,1)
    ax にはグリッドも入れることにします。
    ax.grid()
    ここに、多項式フィッティング線と予測線を描きます。
    plt.plot(
     Idx, p(Idx),
     Idx5, p(Idx5),'bo')
    Idx, p(Idx) がフィッティング線、
    Idx5, p(Idx5),'bo' が予測線(●印)
    が表示されます。

  5. #⑤ ロ-ソク足設定

    candlestick_ohlc( ) メソッドでロ-ソク足の設定をします。

    width = 0.5 :

    ロ-ソク足の太い部分の幅設定。
    大きくすると太くなります。

    alpha = 1 :

    ロ-ソク足の透明度。
    1 にすると不透明になります。

    colorup='r', colordown='g':

    ロ-ソク足の色設定。
    今回は陽線を赤、陰線を緑に設定しました。

  6. #⑥ 変換日付を X 軸日付に埋込む

    変換日付を X 軸日付に埋込みます。
    表示日付位置は軸値(Idx)が 0,10,20,・・・,90 の位置です。
    これは、xD のなかにあります。
    変換日付は xDate のなかにあります。
    よって、xticks メソッドを使うと
    plt.xticks(xD, xDate)
    とすると、Idx が 0,10・・・,90 の位置に xDate を順次表示することができます。

  7. #⑦ タイトル・ラベル表示

    plt.title('AUS$ / JPY chart')
    plt.xlabel('Date')
    plt.ylabel('Yen')
    とするとタイトルとX,Y軸ラベルがそれぞれの中央位置に表示されます。

  8. #⑧ グラフ保存

    グラフを保存するときは描画メソッド
    plt.show() は使用せず
    保存フォルダ
    /home/yamada/public_html/manep-img/
    とファイル名
    mane_chart_go.png
    を指定して

      plt.savefig(
       '/home/yamada/public_html/manep-img/mane_chart_go.png'
    

    とするとグラフをファイル保存してくれます。


ここまでで、豪ドル/円 CSV ダウンロ-ドデ-タ グラフ化ファイルが完成しました。
引き続き、作成したファイル内容をまとめて表示します。


  • 豪ドル/円 CSV ダウンロ-ドデ-タ グラフ化ファイルまとめ に進む
  • 予測日/予測値の一覧表を作成 に戻る
  • 予測最終日取得 に戻る
  • Numpy polyfit 関数で豪ドル/円を予測 に戻る
  • 豪ドル/円 CSV ダウンロ-ドデ-タ グラフ化 に戻る
  • 豪ドル/円 CSV 改造ファイルまとめ に戻る
  • Python 豪ドル/円チャ-ト 概要 に戻る
  • 70VPS に戻る