基于Python的股票行情图绘制.pdf
《基于Python的股票行情图绘制.pdf》由会员分享,可在线阅读,更多相关《基于Python的股票行情图绘制.pdf(3页珍藏版)》请在咨信网上搜索。
1、2023年12 月计算机应用文摘第39 卷第2 3期基于Python的股票行情图绘制刘华煜(洛阳师范学院数学科学学院,河南洛阳47 19 34)摘要:股票行情图是买卖股票的必备工具。Python因为有着众多的包而无所不能。文章将Python作为开发语言,利用baostock获取股票数据,并通过matplotlib和mplfinance进行绘图,从而实现股票行情图的绘制。关键词:股票行情图;Python;b a o s t o c kLIU Huayu中图法分类号:TP311(Faculty of Mathematical Sciences,Luoyang Normal University,L
2、uoyang,Henan 471934,China)Abstract:The stock market chart is an essential tool for buying and selling stocks.Python isomnipotent due to its numerous packages.This article uses Python as the development language,uses baostock to obtain stock data,and plots it using Matplotlib and mplfinance to achiev
3、e thedrawing of stock market charts.Key words:stock price chart,Python,baostock1引言股票行情图的绘制可分为两个步骤,即获取股票历史数据和按照历史数据绘图。本文将利用baostock获取股票历史数据,并用matplotlib 和mplfinance实现绘图。利用Python获取股票数据的方法较多,许多包都支持股票数据的获取,如tushare,yfinance,akshare,dtshare 以及本文要用到的 baostock。b a o s t o c k 是一个免费开源Python财经数据接口包,主要实现股票等金融
4、数据的数据采集、清洗加工及数据存储,能够为金融分析人员提供快速、整洁、多样且便于分析的数据,可以极大地减少数据获取的工作量,有助于金融分析人员更加专注地研究并实现策略和模型。作为Python中类似MATLAB的绘图工具之一,matplotlib是Python中最受欢迎的数据可视化软件包之一 1。matplotlib 的 pyplot 子库支持绘制简单的行情图,但它无法绘制如蜡烛图一般复杂的行情图。mplfinance是一个基于Python的财务数据可视化库,可以便捷地实现各种复杂图形的绘制,如蜡烛图、技术分析指标图、仓位分布直方图等 2 32用baostock获取股票历史数据使用baostoc
5、k首先要登录,登录代码如下:import baostock as bs文献标识码:AStockprice chart plotting based on Pythonbs.login()baostock 的query_history_k_data_plus函数可以用来获取指定股票的各种历史数据,它的用法是query_history_k_data_plus(code,fields,start,end,frequency,adjustflag)。其中,code 是股票代码或指数代码;fields是以逗号分隔的字符串,表达要返回该股票的各类数据;start是开始日期(含),格式为“YYYY-MM-D
6、D;end是结束日期(含),格式为“YYYY-MM-DD;frequency表达获取的数据维度是天、月或分钟等;adjustflag表达的是复权类型;query_history_k_data_plus返回值类型是baostock.data.resultset.ResultData 类型。获取中国石油历史数据的示例代码如下:rs=bs.query_history_k_data_plus(sh.601857,date,open,high,low,close,volume,2021-01-01,2021-12-31,d,3)以上代码获取中国石油(代码sh.601857对应中国石油)在2 0 2 1全
7、年以天为单位的开盘价、最高价、最低价、收盘价以及成交量。其中,frequency为 d代表以天为单位,adjustflag为3代表不复权。由于绘图参照的数据必须是属于pandas 包的DataFrame 类型数据,rs(b a o s t o c k.d a t a.r e s u l t s e t.ResultData类型)需转换为DataFrame类型,相关代码如下:import pandas as pd4.054result_list=while(rs.error_code=0)&rs.next():result_list.append(rs.get_row_data()result=
8、pd.DataFrame(result_list,columns=rs.fields)第2 4行通过送代器逐条读取baostock.data.resultset.ResultData中的数据,然后将取出的数据加人result_list列表中。第 5行将 result_list 列表转换为DataFrame类型。由于result_list列表中不包含DataFrame需要的列名,而rs.fields存储的是获取数据的具体含义(如 date、o p e n )列表,本文通过将参数columns赋值为rs.fields,即可为result赋予正确的列名。通过 print(result.head())
9、即可查看以下result 的结构:date02021-01-0412021-01-0522021-01-0632021-01-0742021-01-08从结果可以看出,result 的每行都代表中国石油某天的各种价格以及成交量,其中1月1日至1月3日不是交易日,因此没有相关数据。baostock使用完毕后需要进行注销,注销代码如下:bs.logout()3用matplotlib 绘制折线图若只需关注股票的大致走势,那么可以针对股票收盘价绘制行情图,即绘制收盘价的折线图。可通过matplotlib.pyplot 的plot函数绘制折线图,其用法如下:plot(X,Y)其中,X和Y分别为点的横坐标
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Python 股票行情 绘制
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。