关于Matplotlib中No module named 'matplotlib.finance'的解决办法
最近在研究量化分析,需要用到matplotlib中的一个库,输入
from matplotlib.finance import quotes_historical_yahoo_ohlc, candlestick_ohlc
发现有报错,仔细勘查后发现有两个问题,一个是matplotlib模块已经剔除了,所以得额外再安装,另外雅虎的数据接口在写此文时还未恢复
对前者的解决有两种方法
方法1:
1. 从github上下载mpl_finance module, 其中github网址:https://github.com/matplotlib/mpl_finance .
2. 通过命令安装下载好的mpl_finance模块,即:
python setup.py install
方法2:
pip install https://github.com/matplotlib/mpl_finance/archive/master.zip
我用的是后者可以运行,所用的那行代码替换成
from mpl_finance import candlestick_ohlc
而对于后者可以采用tushare的接口来调用
下面附一个实战案例,你可以借此测试自己的库是否安装完成
# 实现K线图绘制
import matplotlib.pyplot as plt
import matplotlib
import pandas as pd
from mpl_finance import candlestick_ochl
data = pd.read_hdf("./stock_plot/day_close.h5")[:100]
data1 = pd.read_hdf("./stock_plot/day_close.h5")[:100]
data2 = pd.read_hdf("./stock_plot/day_high.h5")[:100]
data3 = pd.read_hdf("./stock_plot/day_low.h5")[:100]
day = pd.concat([data["000001.SZ"],data1["000001.SZ"], data2["000001.SZ"], data3["000001.SZ"]], axis=1)
day.columns = ["open", "close", "high", "low"]
day = day.reset_index().values
# 画图
fig, axes = plt.subplots(nrows=1, ncols=1, figsize=(20,8), dpi=80)
# 第一个参数axes
candlestick_ochl(axes, day, width=0.3, colorup="r", colordown="g")
plt.show()