pyplot を使う
ロ-ソク足チャ-トファイルその2
引き続きロ-ソク足チャ-トファイルを作成していきます。
肝心のロ-ソク足チャ-ト表示部分のスクリプトを作成します。
まずはそのスクリプトを表示します。
import matplotlib.pyplot as plt #① from mpl_finance import candlestick_ohlc ohlc = zip(Idx, Open, High, Low, Close) #② fig = plt.figure(figsize=(8.34, 5)) #③ ax = fig.add_subplot(1,1,1) #④ ax.grid() 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('file/candlestick_day.png') #⑧
- #① matplotlib.pyplot 読込み
外部モジュ-ル matplotlib の中の pyplot モジュールを読み込んで これを plt と呼びますと宣言します。
その後、candlestick_ohlc を読込みます。
昔の説明では、
import matplotlib.finance as mpf
と書いてあるのですが現在は使用不可のようです。
from mpl_finance import candlestick_ohlc
のように書いてください。 - #② OHLC 形式に変換
xl_df は DaraFrame 書式、これを OHLC(Zip)形式に変換します。
このあと、candlestick_ohlc()メソッドを使用してロ-ソク足を表示します。
リストの要素を取得する場合は for 文を使用するのが一般的ですが、 複数のリストの要素をまとめて取得したい場合もあります。
python 組込 zip 関数は複数のリストを同時に取得したい場合に使用する関数です。
zip関数は以下のように引数に取得したいリスト名を指定します。
ohlc = zip(Idx, Open, High, Low, Close)
これでロ-ソク足を表示するための前準備は完了です。 - #③ キャンパス作成
簡単なグラフの作成の時はキャンパス作成は自動に任せればよかったのですが、 ロ-ソク足チャ-トの場合はうまくいかないようです。
figure はグラフや文字など、全てが描かれるウインドウ(またはページ)を指します。
全ての要素の最上位レベルのコンポーネント figure インスタンス fig を生成します。
fig = plt.figure(figsize=(8.34, 5))
のように書くことができます。
figsize のデフォルトは、(8,6) に設定されています。
単位インチ(1in = 25.4mm)です。
でも、ピクセルサイズで図の大きさを指定したいこともありますよね。
こんな時は
figsize = ピクセル÷72
とすればよいようです。
300×300 ピクセルの図にしたいならば
figsize = 300÷72 = 4.166666
にすればよいようです。
今回は600×360 ピクセルの図にします。
- #④ 図の配置
図を figure 内の枠のどこに配置するか指定します。
figure.add_subplot()
を使用すると、描画するグラフの配置インスタンスを作成することができます。
ここでは、fig キャンパスの中の、 (1,1,1) すなわち「1行 1列の1つ目」に配置インスタンス ax を作成しました。
ax = fig.add_subplot(1,1,1)
ax にはグリッドも入れることにします。
ax.grid() - #⑤ ロ-ソク足設定
candlestick_ohlc( ) メソッドでロ-ソク足の設定をします。
width = 0.5 :
ロ-ソク足の太い部分の幅設定。
大きくすると太くなります。
alpha = 1 :
ロ-ソク足の透明度。
1 にすると不透明になります。
colorup='r', colordown='g':
ロ-ソク足の色設定。
今回は陽線を赤、陰線を緑に設定しました。 - #⑥ 変換日付を X 軸日付に埋込む
変換日付を X 軸日付に埋込みます。
表示日付位置は軸値(Idx)が 0,5,10,・・・,25 の位置です。
これは、xD のなかにあります。
変換日付は xDate のなかにあります。
よって、xticks メソッドを使うと
plt.xticks(xD, xDate)
とすると、Idx が 0,5・・・,25 の位置に xDate を順次表示することができます。 - #⑦ タイトル・ラベル表示
plt.title('AUS$ / JPY chart')
plt.xlabel('Date')
plt.ylabel('Yen')
とするとタイトルとX,Y軸ラベルがそれぞれの中央位置に表示されます。 - #⑧ グラフ保存
グラフを保存するときは描画メソッド
plt.show()
は使用せず、保存フォルダとファイル名を指定して
plt.savefig('file/candlestick_day.png')
とするとグラフ表示とファイル保存を同時にしてくれます。
ファイルまとめ
以上ファイルを整理すると以下のようになります。
import pandas as pd xl_df = pd.read_excel( 'file/CHART-190624-0802-py.xlsx') Open = xl_df["Open"].values High = xl_df["High"].values Low = xl_df["Low"].values Close = xl_df["Close"].values Date = xl_df["Date"].values Idx = xl_df.index # Idx は 0 スタ-ト xDate = [] xD = [] for i, key in enumerate(Date): if(i % 5 == 0): e4 = str(key)[4:10] e6 = e4.replace("-0", "/") e7 = e6.replace("-", "/") e8 = e7.lstrip("/") xDate.append(e8) xD.append(i) import matplotlib.pyplot as plt #① from mpl_finance import candlestick_ohlc ohlc = zip( Idx, Open, High, Low, Close) #② fig = plt.figure(figsize=(8.34, 5)) #③ ax = fig.add_subplot(1,1,1) #④ ax.grid() 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( 'file/candlestick_day.png') #⑧
実行結果
実行結果は次のようになります。
これで、一連のロ-ソク足チャ-トファイル作成作業は完了です。
ロ-ソク足チャ-トファイル作成 に戻る
mpl_finance インスト-ル に戻る
pyplot Excel 日付変換 に戻る
pyplot Excel ファイルグラフ化 に戻る
pyplot グラフファイル作成 に戻る
pyplot 概要 に戻る
Excel 読込みファイル作成 に戻る
pandas 概要 に戻る