大家好,我是早起。

在使用 Python 进行金融数据分析时,绘制 K线图 是很常见的需求。

但如果使用 matplotlib 从 0 开始绘制,一步一步添加日线、均线、MACD、成交量等指标时,则会显得十分麻烦,且代码很难复用。

幸运的是在 matplotlib 中提供接口(matplotlib.finance)直接绘制K线,现在 matplotlib.finance 已经独立成库 mplfinance,更方便的让我们使用。

本文就将介绍如何使用 mplfinance 快速绘制专业的K线图,文末也有完整的数据与源码下载。

01

安装与数据准备

上面已经说到,mplfinance 是一个独立的库,所以直接使用 pip 安装即可,没有任何难度

pip install mplfinance

至于在数据准备上,根据我的开发经验,越懒人版的绘图库对数据要求则越严格,所以在使用之前,我们需要将数据整理成指定的格式,下面是某股票(平安银行000001.sz)的对应数据

如上图所示,数据必须是Pandas DataFrame格式,且必须按照顺序包含开盘价、最高价、最低价、收盘价以及成交量,同时索引需要是pandas支持的时间类型。

关于如何获得、清洗得到这样的数据将不是本文的分享内容,下面仅介绍如何基于这样的数据进行绘图。

02

mplfinance常见用法

基础使用

首先需要导入

import mplfinance as mpf

接下来,在上述数据基础上一行代码即可生成简易价格走势图

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

添加移动均线

通过设置 mav 参数可以添加对应的移动均线,例如添加5日、10日、30日移动均线

mpf.plot(df_new, type='line',mav=(5,10,30))

需要注意的是,这里的x日移动均线并不是通过我们数据的时间索引计算而来,仅是移动x个索引位置而来,由于我们数据时间精度为1天,所以恰好是对应的x天移动均线。

如果索引是分钟级数据,那么设置 mav 得到的就是x分钟均线!

添加成交量

通过设置 volume 参数,可以进一步添加成交量

mpf.plot(df_new, type='line',mav=(5,10,30), volume=True)

制作蜡烛图

通过设置 type 参数可以绘制更专业的蜡烛图,由于上面的数据时间维度过长,绘制蜡烛图会导致很难看清细节。

所以下面绘制最后 40 个交易日的蜡烛图,并添加成交量与 3、6、9 日均线

mpf.plot(df_new.tail(40), type='candle',mav=(3,6,9), volume=True)

展示非交易时间

上面的图是连续的,但交易日并不是天天都是,每天也有指定时间,通过设置 show_nontrading 参数,可以按照交易时间绘制,将非交易时间添加为空白

mpf.plot(df_new,type='candle',mav = (3),show_nontrading=True, volume=True)

至此 mplfinance 的基本使用就介绍完毕,相比来说还是比较容易上手使用的。

pyecharts

虽然 matplotlib 也可以绘制动态图,但是由于 matplotlib 的特性,展示起来并不是很方便。

如果需要能交互式操作数据,拖动时间轴等功能,可以尝试使用 pyecharts,但由于不像 mplfinance 封装好开箱即用,代码写起来还是需要相当一定时间的,大家可以自行选择

推荐阅读

牛逼!Python常用数据类型的基本操作(长文系列第①篇)

牛逼!Python的判断、循环和各种表达式(长文系列第②篇)

牛逼!Python函数和文件操作(长文系列第③篇)

牛逼!Python错误、异常和模块(长文系列第④篇)

用 pandas + matplotlib 绘制精美的K线图相关推荐

  1. Python Matplotlib绘制漂亮的K线图,利用Tushare绘制K线图

    1 引言 做量化分析,难免要将自己的某些指标等绘制在K线图上,或者对某些指标进行改造观察K线图和指标对应的走势关系.那么用Python如何绘制和炒股软件类似的效果呢. 2 准备工具 (1)数据源:Tu ...

  2. matplotlib绘制的多指标k线图

    2019独角兽企业重金招聘Python工程师标准>>> 下面的代码有了几个增强的功能: k线图上叠加其他指标 多个字图的高度实现了不同 效果图: # -*- coding: utf- ...

  3. python 对数坐标_python3绘制股票K线图--pyQtgraph绘制精美股票K线图--之对数坐标(log Y)呈现...

    之前尝试使用mplfinance库做了K线图的呈现.感觉不是很理想,又找到了这个pyQtgraph库,网络上已经有一些人做了K线图的呈现,但是并不满意.主要是对于经常看盘的人来说,图形呈现的特征很重要 ...

  4. python画蜡烛致敬烈士_「」matplotlib 股票-用python绘制蜡烛线型k线图是用代码还是绘图工具-TOP金融网...

    用python绘制蜡烛线型k线图是用代码还是绘图工具 import matplotlib.pyplot as plt from matplotlib.dates import DateFormatte ...

  5. plotly基于dataframe数据绘制股票自定义K线图

    plotly基于dataframe数据绘制股票自定义K线图 #  绘制蜡烛图并自定义可视化形式: import plotly as py import plotly.graph_objs as go ...

  6. python绘制k线图的步骤_Python使用PyQtGraph绘制股票行情K线图

    PyQtGraph是Python平台上一种功能强大的2D/3D绘图库,相对于matplotlib库,由于其在内部实现方式上,使用了高速计算的numpy信号处理库以及Qt的GraphicsView框架, ...

  7. python画蜡烛致敬烈士_用python绘制股票图,用python绘制蜡烛线型k线图是用代码还是绘图工具...

    Q1:用python绘制蜡烛线型k线图是用代码还是绘图工具 import matplotlib.pyplot as plt from matplotlib.dates import DateForma ...

  8. 如何使用Matlab绘制常见的K线图(蜡烛图)

    Author Bryce230 e-mail 2540892461@qq.com Software win10,Matlab2018a 关于画K线图,Matlab有一个自带的函数candle,画图效率 ...

  9. Python绘制简单版K线图

    不管是对量化分析师还是普通的投资者来说,K线图(蜡烛图)都是一种很经典.很重要的工具.在K线图中,它会绘制每天的最高价.最低价.开盘价和收盘价,这对于我们理解股票的趋势以及每天的多空对比很有帮助. 一 ...

最新文章

  1. HTML用乘法函数,Excel乘法函数的使用方法和详细步骤
  2. 【Unique Binary Search Trees II】cpp
  3. sql server服务看不到,显示为远程过程调用在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误10061...
  4. 《leetcode》valid-sudoku
  5. 物理层、数据链路层网络设备工作原理
  6. Tensorflow Python API 翻译(sparse_ops)
  7. 源代码 oa办公系统jsp_【程序源代码】经典的办公系统开发框架
  8. “无法保存该网页”的最简单解决方法
  9. 计算机数据结构考研知识点汇总,数据结构考研知识点总结.pdf
  10. 微软背叛wintel联盟,Intel似乎正陷入四面楚歌之中
  11. jzoj5336 【NOIP2017提高A组模拟8.24】提米树 (dfs序dp,奇异姿势dp)
  12. 迪文屏K600+ 数据库的读写操作
  13. 大闹天宫 页游 架设教程 自玩 单机
  14. linux vim下自动补全,linux-python在vim下的自动补全功能
  15. 常用英语食品词汇- 调味品类
  16. ECCV 2020|3D-CVF多模态融合(LIDAR+CAMERA)
  17. robotframework调用python类方法_【RF基础】RF调用Python函数基础
  18. 计算机对英语写作的帮助,2018年6月英语六级写作范文:计算机对写作能力的影响...
  19. AndLua加密解密
  20. FBI网站被黑致数据泄露?官方称这根本是个骗局

热门文章

  1. 如何在一天内被Google和百度收录
  2. MySQL 之全文索引
  3. Fiddler 从安装到使用 (creation of the root certificate wasn)
  4. Bootstrap的lia
  5. android7.0wine乱码,Wine1.7+QQ6.4+处理中文乱码
  6. db2 oracle mysql sqlserver_mysql、sqlserver、db2、oracle、hsql数据库获取数据库连接方法及分页函数...
  7. layui table 单元格适应宽高
  8. 关键词词云怎么做_制作CVPR 热词云(并爬取pdf地址 名称)
  9. api可以主动采集用户数据吗_模拟量数字量采集卡之EC-8001篇
  10. python和log有啥区别_细说 Python logging