python
1import pandas as pd 2import matplotlib.pyplot as plt 3import mpl_finance as mpf 4import matplotlib.dates as mdates 5 6 7 8 9 10def main():#ローソク足+出来高表示プログラム 11 df = pd.read_csv('6502_2018.csv', encoding='Shift_JIS', na_values='--',header=1)#csvファイルは個別銘柄の時系列データが入ったもの 12 13 df.columns=["Date", "Open", "High", "Low", "Close", "Volume", "Trading Value"] 14 15 df["Date"] = pd.to_datetime(df["Date"]) 16 17 # "Date"列を数値型に変換 18 df["Date"] = mdates.date2num(df["Date"]) 19 20 fig = plt.figure(figsize=(18, 9)) 21 ax = plt.subplot(1, 1, 1) 22 23 # candlestickを使って描画 24 mpf.candlestick_ohlc(ax, df[["Date", "Open", "High", "Low", "Close"]].values, width=0.9, colorup="b", colordown="r") 25 # 時系列用のLocator/Formatterを使用 26 ax.xaxis.set_major_locator(mdates.DayLocator(interval=30)) 27 ax.xaxis.set_major_formatter(mdates.DateFormatter('%b/%d')) 28 29 30 31 ax.set_xlim([0, df.shape[0]]) # 横軸の範囲はデータの個数(df.shape[0]個)までに変更しておく 32 ax.set_ylabel("Price") 33 34 #出来高を描画 35 bottom, top = ax.get_ylim() 36 ax.set_ylim(bottom - (top - bottom) / 4, top) 37 # 出来高のチャートをプロット 38 ax2 = ax.twinx() 39 mpf.volume_overlay(ax2, df["Open"], df["Trading Value"], df["Volume"], width=0.9, colorup="g", colordown="g") 40 ax2.set_xlim([0, df.shape[0]]) 41 # 出来高チャートは下側25%に収める 42 ax2.set_ylim([0, df["Volume"].max() * 4]) 43 ax2.set_ylabel("Volume") 44 45 plt.tight_layout() 46 plt.show() 47 48 49 50if __name__ == '__main__': 51 main()
このプログラムでは出来高のみ表示しかできません.
現在ローソク足と出来高はそれぞれ表示させることが出来ますがまとめて表示させようとするとローソク足が消えてしまいます.
どのようにコードを書き直せば良いのか教えていただきたいです.
よろしくお願いします.
あなたの回答
tips
プレビュー