ダーシャのブログ

ゆるゆる生きてていいじゃない

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で実行した。csvappleの株価を使用。

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)

実行結果