• 安装`mplfinance`库(Windows 10)
  • 导入
  • 示例代码
  • 总结
  • 推荐阅读

近日需要使用 matplotlibfinance库来绘制K线图及均线,但是 finance库已经停止更新了,查询后得知 finance库已经从 matplotlib中独立出来,新库名为 mpl_finance,但此库在使用中会出现弃用警告,查询官方文档后得知由一个更新的 mplfinance库替代(注意中间没有下划线或横线!)。更新后的 mplfinance库较以往更加简单易用,增加了很多新功能(renko砖形图、volume柱形图、ohlc图等),且支持多种风格,可定制多种颜色(因为国外K线图颜色与国内相反,容易产生误导),线条(默认线条较粗,影响观感)等。鉴于目前介绍 mplfinance库的中文文档匮乏,下面介绍相关用法,以供参考。

官方文档及项目的GitHub地址:
pypi主页
GitHub项目地址
项目源码、官方文档及示例ipynb文件(已上传至百度云,方便下载,提取码:481m)

安装mplfinance库(Windows 10)

安装mplfinance库要求pandasmatplotlib

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线、均线图相关推荐

  1. 用python的matplotlib和numpy库绘制股票K线均线和成交量的整合效果(含量化验证交易策略代码)...

    在用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口爬取数据和验证交易策略代码)一文里,我讲述了通过爬虫接口得到股票数据并绘制出K线均线图形的方式,在本文里,将 ...

  2. Python量化投资——mplfinance最佳实践:动态交互式高级K线图(蜡烛图)【源码+详解】

    用mplfinance实现全功能动态交互式K线图 手把手用`python`+mplfinance实现高级K线图 ` mplfinance`的基本K线图 目标 实现自定义风格和颜色 图表尺寸调整.相关信 ...

  3. 用python画股票分时图 github_用python的matplotlib和numpy库绘制股票K线均线和成交量的整合效果(含量化验证交易策略代码)...

    在用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口爬取数据和验证交易策略代码)一文里,我讲述了通过爬虫接口得到股票数据并绘制出K线均线图形的方式,在本文里,将 ...

  4. 用AkShare获取沪深京A股分钟级K线数据

    前面已经讲解了如何通过AkShare获取实时K线数据和沪深京A股历史数据.但是在现实做策略回测的过程,经常会用到分钟级数据计算买卖点.下面我们讲讲如何用AkShare获取沪深京A股分钟级K线数据. 一 ...

  5. 用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口爬取数据和验证交易策略代码)...

    本人最近在尝试着发表"以股票案例入门Python编程语言"系列的文章,在这些文章里,将用Python工具绘制各种股票指标,在讲述各股票指标的含义以及计算方式的同时,验证基于各种指标 ...

  6. 三推形态,一种常用的K线形态

    三推形态,指价格向下或向上出现三次推动的形态,是一种动能衰竭的表现,后市可能进入震荡整理或反转.如图(1)所示: 图(1) 向下三推,在下降趋势中,选取两个相近的明显波谷低点或者价格低点,分别是一推和 ...

  7. Python量化投资——mplfinance实现全功能动态交互式K线图(蜡烛图)【源码+详解】

    用python实现全功能动态交互式K线图 手把手用`python`一步步实现动态交互式K线图 ` mplfinance`的基本K线图 目标 实现自定义风格和颜色 图表尺寸调整.相关信息的显示 添加完整 ...

  8. Python mplfinance库④ 如何自定义style样式

    使用mplfinance的时候,我们通过设定参数style,可以得到多种多样的图像风格.style参数常用的内置样式有:'binance', 'blueskies', 'brasil', 'charl ...

  9. CDN公共库、前端开发常用插件一览表(VendorPluginLib)

    ============================================================= ==========================前端CDN公共库==== ...

最新文章

  1. pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动最小值(rolling min)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额最小值
  2. Java: 数据类型
  3. 实现 scrollview 默认显示指定的页码
  4. SQLServer 数据库主体在该数据库中拥有 架构,无法删除解决方法
  5. 和老婆在MSN上面的涂鸦
  6. 2021年上犹中学高考成绩查询入口,上犹县2019年高考成绩单出来了……
  7. 数值计算方法(零)——运算的要求+基本算法
  8. Android自带类实现语音合成
  9. ERROR: cuda requested, but not all dependencies are satisfied: ffnvcodec
  10. Kotlin解析JSON数据
  11. Android开发——ListView局部刷新的实现
  12. 项目启动管理、需求分析、可行性方案论证  IT项目管理
  13. simulink仿真之阶梯步长
  14. 学计算机高中选那三科,高中选哪三科最吃香
  15. Python实现对Bitly的USA.gov数据集的可视化
  16. 附近的人打招呼V1.0
  17. 最强Android教程!怒斩获了30家互联网公司offer,赶紧收藏!
  18. 国产GPU添新玩家,AMD出身,两款业界第一7nm芯片曾由他打造
  19. Connection must be valid and open.
  20. Android VideoView 视频播放器 仿抖音

热门文章

  1. 2018web前端面试题总结
  2. 【重要】ionic和Angular的安装步骤
  3. 三、fs文件操作模块
  4. 降低成本是永恒的追求(xamarin)
  5. 配置Apache Httpd Server 2.2 Virtual Host UrlRewrite
  6. 计算机课Word自我介绍,第5课 用WORD写篇自我介绍.doc
  7. CCF202006-2 稀疏向量
  8. 数字信号 fft c源码_如何制作一个简单的人体动态识别微信小程序(附源码)
  9. 数据 3 分钟 | ShardingSphere 核心团队获融资、巨杉数据库发布湖仓一体架构多款产品...
  10. 汇总:MySQL 8.0 运维便捷命令