利用python numpy+matplotlib绘制股票k线图的方法
Python  /  管理员 发布于 7年前   213
一、python numpy + matplotlib 画股票k线图
# -- coding: utf-8 --import requestsimport numpy as np from matplotlib import pyplot as plt from matplotlib import animation fig = plt.figure(figsize=(8,6), dpi=72,facecolor="white")axes = plt.subplot(111)axes.set_title('Shangzheng')axes.set_xlabel('time')line, = axes.plot([], [], linewidth=1.5, linestyle='-')alldata = [] def dapan(code):url = 'http://hq.sinajs.cn/?list='+coder = requests.get(url)data = r.content[21:-3].decode('gbk').encode('utf8').split(',')alldata.append(data[3])axes.set_ylim(float(data[5]), float(data[4]))return alldata def init():line.set_data([], [])return line def animate(i): axes.set_xlim(0, i+10) x = range(i+1) y = dapan('sh000001') line.set_data(x, y) return line anim=animation.FuncAnimation(fig, animate, init_func=init, frames=10000, interval=5000) plt.show()
二、使用matplotlib轻松绘制股票K线图
K线图是看懂股票走势的最基本知识,K线分为阴线和阳线,阴线和阳线都包含了最低价、开盘价、最高价和收盘价,一般都K线如下图所示:
在使用Python进行股票分析的过程中,我们可以很容易的对K线图进行绘制,下面介绍两种情形下的K线图绘制:
1. 股票数据来源于Matplotlib:
# 导入需要的库import tushare as tsimport matplotlib.pyplot as pltimport matplotlib.finance as mpf %matplotlib inline # 设置历史数据区间date1 = (2014, 12, 1) # 起始日期,格式:(年,月,日)元组date2 = (2016, 12, 1) # 结束日期,格式:(年,月,日)元组# 从雅虎财经中获取股票代码601558的历史行情quotes = mpf.quotes_historical_yahoo_ohlc('601558.ss', date1, date2) # 创建一个子图 fig, ax = plt.subplots(facecolor=(0.5, 0.5, 0.5))fig.subplots_adjust(bottom=0.2)# 设置X轴刻度为日期时间ax.xaxis_date()# X轴刻度文字倾斜45度plt.xticks(rotation=45)plt.title("股票代码:601558两年K线图")plt.xlabel("时间")plt.ylabel("股价(元)")mpf.candlestick_ohlc(ax,quotes,width=1.2,colorup='r',colordown='green')plt.grid(True)
绘制出来的K线图如下:
2.股票数据来源于Tushare:
因为从Tushare中获取到的数据为Pandas的DataFrame结构,需要将其转换为matplotlib.finance.candlestick_ohlc()方法能够处理的数据结构。
from matplotlib.pylab import date2numimport datetime # 对tushare获取到的数据转换成candlestick_ohlc()方法可读取的格式data_list = []for dates,row in hist_data.iterrows(): # 将时间转换为数字 date_time = datetime.datetime.strptime(dates,'%Y-%m-%d') t = date2num(date_time) open,high,low,close = row[:4] datas = (t,open,high,low,close) data_list.append(datas) # 创建子图fig, ax = plt.subplots()fig.subplots_adjust(bottom=0.2)# 设置X轴刻度为日期时间ax.xaxis_date()plt.xticks(rotation=45)plt.yticks()plt.title("股票代码:601558两年K线图")plt.xlabel("时间")plt.ylabel("股价(元)")mpf.candlestick_ohlc(ax,data_list,width=1.5,colorup='r',colordown='green')plt.grid()
同样也能绘制会一样的K线图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号