matplotlib.finance が見つからないときの対処法
matplotlib.financeは無くなり、mplfinanceになった
pip install mplfinance
で、mplfinanceをインストールできる。
import mplfinance as mpf
で使用可能。
別のサイトではmpl_financeをインストールすると書いてあるが、mplfinanceの方が最新版であるため、間違いである。
candlestick2_ohlc は必要なくなった
mplfinance.plot(dataframe, type='candle')
このようにして簡単にローソク足チャートを作ることが出来る。
ただし、candlestick2_ohlcのときは引数で個別にopen, high, low等の値を渡せたが、mplfinance.plotを使う際はdataframeのindexとcolumnを合わせてやる必要がある。
set_index('time')
df.columns = ['Open', 'High', 'Low', 'Close', 'Volume']
このように、indexに時間を、columsは大文字小文字も区別して割り当てる。
set_indexのtimeは文字のままだとエラーになる
df['time'] = pd.to_datetime(df['time'])
print(df['time'].dtype)
df = df.set_index('time')
datatime64型にしてやることで、扱うことが可能になる。
サンプルコード
jupyter notebookで実行した。csvはappleの株価を使用。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import mplfinance as mpf
%matplotlib inline
df = pd.read_csv('aapl_2015_2019.csv', index_col=0, parse_dates=True)
print(df)
#df['time'] = pd.to_datetime(df['time'])
#print(df['time'].dtype)
#df = df.set_index('time')
df.reindex(columns=['open', 'high', 'low', 'close', 'volume'])
df.columns = ['Open', 'High', 'Low', 'Close', 'Volume']
df.head(3)
mpf.plot(df[:100], type='candle', figratio=(12,4), volume=True)