用mplfinance库定制A股常用的K线、均线图
- 安装`mplfinance`库(Windows 10)
- 导入
- 示例代码
- 总结
- 推荐阅读
近日需要使用 matplotlib
的 finance
库来绘制K线图及均线,但是 finance
库已经停止更新了,查询后得知 finance
库已经从 matplotlib
中独立出来,新库名为 mpl_finance
,但此库在使用中会出现弃用警告,查询官方文档后得知由一个更新的 mplfinance
库替代(注意中间没有下划线或横线!)。更新后的 mplfinance
库较以往更加简单易用,增加了很多新功能(renko砖形图、volume柱形图、ohlc图等),且支持多种风格,可定制多种颜色(因为国外K线图颜色与国内相反,容易产生误导),线条(默认线条较粗,影响观感)等。鉴于目前介绍 mplfinance
库的中文文档匮乏,下面介绍相关用法,以供参考。
官方文档及项目的GitHub地址:
pypi主页
GitHub项目地址
项目源码、官方文档及示例ipynb文件(已上传至百度云,方便下载,提取码:481m)
安装mplfinance
库(Windows 10)
安装mplfinance
库要求pandas
和matplotlib
pip install mplfinance --upgrade --user -i https://pypi.tuna.tsinghua.edu.cn/simple
导入
import mplfinance as mpf
废话不多说,直接上代码。。
示例代码
import mplfinance as mpf
import matplotlib as mpl# 用于设置曲线参数
from cycler import cycler# 用于定制线条颜色
import pandas as pd# 导入DataFrame数据
import matplotlib.pyplot as pltdef import_csv(stock_code):# 导入股票数据df = pd.read_csv(stock_code + '.csv')# 格式化列名,用于之后的绘制df.rename(columns={'date': 'Date', 'open': 'Open', 'high': 'High', 'low': 'Low', 'close': 'Close', 'volume': 'Volume'}, inplace=True)# 转换为日期格式df['Date'] = pd.to_datetime(df['Date'])# 将日期列作为行索引df.set_index(['Date'], inplace=True)return df# 导入数据
symbol = 'sh600519'
period = 100
df = import_csv(symbol)[-period:]# 设置基本参数
# type:绘制图形的类型,有candle, renko, ohlc, line等
# 此处选择candle,即K线图
# mav(moving average):均线类型,此处设置7,30,60日线
# volume:布尔类型,设置是否显示成交量,默认False
# title:设置标题
# y_label:设置纵轴主标题
# y_label_lower:设置成交量图一栏的标题
# figratio:设置图形纵横比
# figscale:设置图形尺寸(数值越大图像质量越高)
kwargs = dict(type='candle', mav=(7, 30, 60), volume=True, title='\nA_stock %s candle_line' % (symbol), ylabel='OHLC Candles', ylabel_lower='Shares\nTraded Volume', figratio=(15, 10), figscale=5)# 设置marketcolors
# up:设置K线线柱颜色,up意为收盘价大于等于开盘价
# down:与up相反,这样设置与国内K线颜色标准相符
# edge:K线线柱边缘颜色(i代表继承自up和down的颜色),下同。详见官方文档)
# wick:灯芯(上下影线)颜色
# volume:成交量直方图的颜色
# inherit:是否继承,选填
mc = mpf.make_marketcolors(up='red', down='green', edge='i', wick='i', volume='in', inherit=True)# 设置图形风格
# gridaxis:设置网格线位置
# gridstyle:设置网格线线型
# y_on_right:设置y轴位置是否在右
s = mpf.make_mpf_style(gridaxis='both', gridstyle='-.', y_on_right=False, marketcolors=mc)# 设置均线颜色,配色表可见下图
# 建议设置较深的颜色且与红色、绿色形成对比
# 此处设置七条均线的颜色,也可应用默认设置
mpl.rcParams['axes.prop_cycle'] = cycler(color=['dodgerblue', 'deeppink', 'navy', 'teal', 'maroon', 'darkorange', 'indigo'])# 设置线宽
mpl.rcParams['lines.linewidth'] = .5# 图形绘制
# show_nontrading:是否显示非交易日,默认False
# savefig:导出图片,填写文件名及后缀
mpf.plot(df, **kwargs, style=s, show_nontrading=False,savefig='A_stock-%s %s_candle_line'% (symbol, period) + '.jpg')
plt.show()
配色表图片引用自finthon.com/matplotlib-color-list/
总结
示例代码介绍了一些常用参数及配置,基本包含K线绘制的所有内容。图例等内容与matplotlib
库使用方法相同,不作赘述。
了解更多请见网盘的example文件夹,包含官方的jupyter notebook详解。
本人第一次写csdn文章,若出现错误请多多包涵。如果有帮助就点个赞吧!
2020.4.9更新, 运行代码时不显示图像,在代码后加plt.show()
即可(import matplotlib.pyplot as plt
)。
推荐阅读
本人的其他有关文章,感兴趣的朋友可以看看。
Python绘制MACD指标图
Python绘制BOLL布林线指标图
Python绘制RSI相对强弱指标图
用mplfinance库定制A股常用的K线、均线图相关推荐
- 用python的matplotlib和numpy库绘制股票K线均线和成交量的整合效果(含量化验证交易策略代码)...
在用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口爬取数据和验证交易策略代码)一文里,我讲述了通过爬虫接口得到股票数据并绘制出K线均线图形的方式,在本文里,将 ...
- Python量化投资——mplfinance最佳实践:动态交互式高级K线图(蜡烛图)【源码+详解】
用mplfinance实现全功能动态交互式K线图 手把手用`python`+mplfinance实现高级K线图 ` mplfinance`的基本K线图 目标 实现自定义风格和颜色 图表尺寸调整.相关信 ...
- 用python画股票分时图 github_用python的matplotlib和numpy库绘制股票K线均线和成交量的整合效果(含量化验证交易策略代码)...
在用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口爬取数据和验证交易策略代码)一文里,我讲述了通过爬虫接口得到股票数据并绘制出K线均线图形的方式,在本文里,将 ...
- 用AkShare获取沪深京A股分钟级K线数据
前面已经讲解了如何通过AkShare获取实时K线数据和沪深京A股历史数据.但是在现实做策略回测的过程,经常会用到分钟级数据计算买卖点.下面我们讲讲如何用AkShare获取沪深京A股分钟级K线数据. 一 ...
- 用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口爬取数据和验证交易策略代码)...
本人最近在尝试着发表"以股票案例入门Python编程语言"系列的文章,在这些文章里,将用Python工具绘制各种股票指标,在讲述各股票指标的含义以及计算方式的同时,验证基于各种指标 ...
- 三推形态,一种常用的K线形态
三推形态,指价格向下或向上出现三次推动的形态,是一种动能衰竭的表现,后市可能进入震荡整理或反转.如图(1)所示: 图(1) 向下三推,在下降趋势中,选取两个相近的明显波谷低点或者价格低点,分别是一推和 ...
- Python量化投资——mplfinance实现全功能动态交互式K线图(蜡烛图)【源码+详解】
用python实现全功能动态交互式K线图 手把手用`python`一步步实现动态交互式K线图 ` mplfinance`的基本K线图 目标 实现自定义风格和颜色 图表尺寸调整.相关信息的显示 添加完整 ...
- Python mplfinance库④ 如何自定义style样式
使用mplfinance的时候,我们通过设定参数style,可以得到多种多样的图像风格.style参数常用的内置样式有:'binance', 'blueskies', 'brasil', 'charl ...
- CDN公共库、前端开发常用插件一览表(VendorPluginLib)
============================================================= ==========================前端CDN公共库==== ...
最新文章
- pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动最小值(rolling min)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额最小值
- Java: 数据类型
- 实现 scrollview 默认显示指定的页码
- SQLServer 数据库主体在该数据库中拥有 架构,无法删除解决方法
- 和老婆在MSN上面的涂鸦
- 2021年上犹中学高考成绩查询入口,上犹县2019年高考成绩单出来了……
- 数值计算方法(零)——运算的要求+基本算法
- Android自带类实现语音合成
- ERROR: cuda requested, but not all dependencies are satisfied: ffnvcodec
- Kotlin解析JSON数据
- Android开发——ListView局部刷新的实现
- 项目启动管理、需求分析、可行性方案论证 IT项目管理
- simulink仿真之阶梯步长
- 学计算机高中选那三科,高中选哪三科最吃香
- Python实现对Bitly的USA.gov数据集的可视化
- 附近的人打招呼V1.0
- 最强Android教程!怒斩获了30家互联网公司offer,赶紧收藏!
- 国产GPU添新玩家,AMD出身,两款业界第一7nm芯片曾由他打造
- Connection must be valid and open.
- Android VideoView 视频播放器 仿抖音
热门文章
- 2018web前端面试题总结
- 【重要】ionic和Angular的安装步骤
- 三、fs文件操作模块
- 降低成本是永恒的追求(xamarin)
- 配置Apache Httpd Server 2.2 Virtual Host UrlRewrite
- 计算机课Word自我介绍,第5课 用WORD写篇自我介绍.doc
- CCF202006-2 稀疏向量
- 数字信号 fft c源码_如何制作一个简单的人体动态识别微信小程序(附源码)
- 数据 3 分钟 | ShardingSphere 核心团队获融资、巨杉数据库发布湖仓一体架构多款产品...
- 汇总:MySQL 8.0 运维便捷命令