Python的mpl_finance模块从2020年已经提醒弃用,新mplfinance模块详解(一)

一、概述

python中调用mpl_finance已经出现警告:

=================================================================

   WARNING: `mpl_finance` is deprecated:

    Please use `mplfinance` instead (no hyphen, no underscore).

    To install: `pip install --upgrade mplfinance` 

   For more information, see: https://pypi.org/project/mplfinance/

=================================================================

从官方介绍的历史版本看mplfinance是从0.11.x版2019年12月20日开始更新频繁的,之前的0.10.x版最近的更新在2016年,那么说这个新模块的取代刚刚不到半年的时间,从论坛上搜索资料还比较少。
mplfinance与mpl_finance功能相近但是区别还是很大的,之前的candlestick2_ochl()方法已经没有了,取而代之的是plot和make_addplot,这两个方法的参数也更是不同,新模块的plot可以直接使用pandas数据格式(旧模块mpl_finanace只支持numpy数据交互),而且可以自动完成额外的matplotlib工作(旧模块只能手动完成,而旧模块的API在这个包中仍然可用;),总体来说新模块mplfinance使用更便捷。

mplfinance模块说明

mplfinance是专用于金融数据的可视化分析模块,是基于matplotlib的实用模块程序。
基于前面的介绍,可以确定使用前必须确保已经安装了matplotlib和pandas。
mplfinance使用是简直太方便,绘制个均线什么的一个关键字参数解决,剔除停盘时间段的空白不用你想它已经自动做了,还有时间坐标都是自动完成的,比如显示的是当天k线就只显示时间,跨天就自动带上日期,跨年就自动带上年份,哇,mplfinance在使用上不要太方便、太人性化!

mplfinance安装

上面调用旧模块mpl_finance的警告中已经提醒了:

pip install --upgrade mplfinance

或者github下载

二、mplfinance模块plot基本用法

调用

import mplfinance as mpf

mpf.plot(data)

这里需要强调的是参数data的类型,data必须是pandas.DataFrame数据类型,对所包含的列也有要求,必须包含’Open’, ‘High’, ‘Low’ 和 ‘Close’ 数据(注意:首字母是大写的),而且行索引必须是pandas.DatetimeIndex,行索引的名称必须是’Date‘(同理注意首字母大写),此外还有一列是’Volume’,这一列不是必须的,可选项(前提是你不想绘制成交量的话)。例如:(后面举例就以这些数据为例)

                        Open      High       Low     Close  Volume
Date                                                               
2020-04-01 00:00:00  23646.00  23646.00  23622.00  23624.00      74
2020-04-01 00:01:00  23623.00  23627.00  23612.00  23627.00      68
2020-04-01 00:02:00  23626.00  23631.00  23612.00  23615.00      59
2020-04-01 00:03:00  23612.00  23625.00  23609.00  23610.00      62
2020-04-01 00:04:00  23608.00  23619.00  23604.00  23606.00      58
2020-04-01 00:05:00  23606.00  23620.00  23605.00  23620.00      50
2020-04-01 00:06:00  23621.00  23629.00  23620.00  23624.00      51
2020-04-01 00:07:00  23626.00  23644.00  23620.00  23639.00      78
2020-04-01 00:08:00  23639.00  23642.00  23631.00  23636.00      74
2020-04-01 00:09:00  23635.00  23654.00  23635.00  23651.00      72
2020-04-01 00:10:00  23654.00  23655.00  23644.00  23648.00      54
2020-04-01 00:11:00  23648.00  23652.00  23631.00  23638.00      67
2020-04-01 00:12:00  23640.00  23646.00  23638.00  23644.00      65
2020-04-01 00:13:00  23644.00  23645.00  23633.00  23640.00      71
2020-04-01 00:14:00  23637.00  23640.00  23625.00  23625.00      68
2020-04-01 00:15:00  23624.00  23636.00  23623.00  23633.00      79
2020-04-01 00:16:00  23633.00  23634.00  23612.00  23614.00      75
2020-04-01 00:17:00  23615.00  23626.00  23614.00  23626.00      77
2020-04-01 00:18:00  23626.00  23626.00  23605.00  23607.00      67
2020-04-01 00:19:00  23605.00  23610.00  23599.00  23607.00      65
2020-04-01 00:20:00  23607.00  23616.00  23594.00  23595.00      57
2020-04-01 00:21:00  23594.00  23600.00  23588.00  23591.00      67
2020-04-01 00:22:00  23589.00  23597.00  23586.00  23590.00      64
2020-04-01 00:23:00  23589.00  23592.00  23584.00  23587.00      60
2020-04-01 00:24:00  23585.00  23589.00  23580.00  23580.00      57
2020-04-01 00:25:00  23578.00  23578.00  23552.00  23553.00      63
2020-04-01 00:26:00  23552.00  23562.00  23546.00  23558.00      55
2020-04-01 00:27:00  23556.00  23563.00  23548.00  23551.00      82
2020-04-01 00:28:00  23550.00  23557.00  23541.00  23551.00      61
2020-04-01 00:29:00  23551.00  23570.00  23550.00  23569.00      67

输出结果:
默认绘图模式

修改plot绘图类型

通过参数type修改绘图类型,默认是ohlc,可修改为:type=‘candle’ 或者 type=‘line’,这个想必不用解释直接上结果:

mpf.plot(data,type='candle')

输出:
蜡烛图

mpf.plot(data,type='line')

这里可以通过linecolor关键字参数设置线的颜色,如:mpf.plot(data,type=‘line’, linecolor=‘g’),linecolor参数仅仅在type=‘line’时起作用。
输出:
折线图

增加绘制均线

关键字参数 mav=(2, 5, 10),多条均线使用元组,只绘制一条均线,可以mav=10;

mpf.plot(data, type='line', mav=(2, 5, 10))

输出:
蜡烛图均线

绘制成交量

关键字参数, volume=True

mpf.plot(data, type='candle', mav=(2, 5, 10), volume=True)

输出:
成交量

自动剔除非交易日空白

关键字参数show_nontrading=False,其实show_nontrading默认就是False,官方文档中提到,可能有人想看到停盘的时间段,那就show_nontrading=True;
这里找了一段有停盘的数据展示下show_nontrading=True的情况(上面的数据没有停盘时间);False是默认,与上面展示的图形无疑,这里就不展示了

# 显示非交易时间的空白
mpf.plot(data,type='candle',mav=(2, 5, 10), volume=True,show_nontrading=True)

输出:
显示停盘时间

三、make_addplot的基本用法

(持续未完,争取今天续二)

原创文章 12 获赞 20 访问量 1467

猜你喜欢

转载自blog.csdn.net/wuwei_201/article/details/105781844
今日推荐