用pandasmatplotlib绘制精美的K线图
来源:早起Python
作者:刘早起
在使用 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 封装好开箱即用,代码写起来还是需要相当一定时间的,大家可以自行选择
久违了!小米Note4规格曝光6000mAh屏下摄像,有望明年发布众所周知,小米Note系列与Mix一样,同样停更了几年,甚至Note系列比Mix停更时间还要长一些,然而在小米Mix复活之后,Note系列也传来好消息。就在今天,有消息称小米将于明
新能源汽车全链路分解上游原材料生产与加工锂赣峰锂业天奇锂业盛新锂能融捷G份钴华友钴业寒锐钴业海南矿业天奇G份镍兴业矿业科力远格林美碳(石墨)永东G份黑猫股份碳元科技氢卫星石化金宏气体金能科技稀土北方稀
世界500强企业中国排名第一,含金量有多高500强近日,2021年财富世界500强企业排行榜发布500企业国家排名中国大陆(不含中国台湾)以135家排名第一,美国以122家位居第二,日本以53家排名第三。中国作为全球第二经
亚马逊封号杀敌一千自损八百背后,是一场较量大家应该都知道,亚马逊这个平台尽管是美国的电商平台,但是亚马逊上的中国商家倒是占据了半边天。疫情的倒逼对于许多中国商家来说,反而变成了商机,在亚马逊上,40以上的卖家来自于中国而中
教培工作者10大转型方向这几天很多粉丝问CY,后双减时代的教培工作如何选择职业方向?在这里就给大家汇总一下,双减政策下教培工作者们转型的10个方向。1)编程教育硬编程机构主要需求人才编程老师编程机构运营人
如何评价地处于河北省滦州市的北方旅游景区滦州古城?谢邀回答!别说,这个滦州古城还真去过,2016年去北戴河回京途中,有朋友推荐说滦州古城还不错,可以去看看,见天色还早,就果断下了高速,。本来对古城文化有着浓厚兴趣的我,下高速没走多
千行字不如一幅图,你能用几张照片来描述你曾经旅游过的景点吗?雨中漫步,大好河山。千年古亭。含义深刻。我曾经旅游过的景点很多,非常愿意用照片来描述,可惜有的景点几张照片和文字不足以描述它的美,比如西藏的圣湖当惹雍错。我曾经去过五次当惹雍错,走
潍坊哪个景点适合带孩子去玩?点击上方关注,关注二哥!带你吃带你玩带你耍!潍坊有很多景点都适合爸爸妈妈带孩子去玩啊,不过既然你问了,那我们来盘点盘点。说到孩子首先想到的肯定是游乐园了,那么潍坊哪里有游乐园呢?看
五天暴涨34倍的ACH是何方妖怪,为何突然拉升?AlchemyPay成立于2018年,通过65个国家地区的300个法定和加密支付渠道运营着一个全球加密法定支付网关。该公司的商户网络还包括香港最大的家具公司Pricerite新加坡
差距再次拉大!京东迈出关键一步,刘强东终于圆梦刘强东迈出关键一步在国内三大电商平台中,京东凭借着品质好物流快和售后服务有保障的特点迅速抢占市场,在三大平台中好评率一直最高。与其他两大电商平台不同,京东不仅拥有自己的物流体系,而
不只有小米MIX4,还有第二代小米OLED电视高端智能音箱日前,小米手机官方宣布,将于8月10号召开我的梦想,我的选择2021雷军年度演讲。随后,官宣万众期待的小米MIX4将于8月10号一同亮相。随着2021雷军年度演讲时间的接近,小米官