利用python numpy+matplotlib绘制股票k线图的方法


Posted in Python onJune 26, 2019

一、python numpy + matplotlib 画股票k线图

# -- coding: utf-8 --
import requests
import 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='+code
	r = 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 numpy+matplotlib绘制股票k线图的方法

在使用Python进行股票分析的过程中,我们可以很容易的对K线图进行绘制,下面介绍两种情形下的K线图绘制:

1. 股票数据来源于Matplotlib:

# 导入需要的库
import tushare as ts
import matplotlib.pyplot as plt
import 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线图如下:

利用python numpy+matplotlib绘制股票k线图的方法

2.股票数据来源于Tushare:

因为从Tushare中获取到的数据为Pandas的DataFrame结构,需要将其转换为matplotlib.finance.candlestick_ohlc()方法能够处理的数据结构。

from matplotlib.pylab import date2num
import 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线图:

利用python numpy+matplotlib绘制股票k线图的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中转换角度为弧度的radians()方法
May 18 Python
python在不同层级目录import模块的方法
Jan 31 Python
Python采用Django制作简易的知乎日报API
Aug 03 Python
Python中的左斜杠、右斜杠(正斜杠和反斜杠)
Aug 30 Python
python中字符串类型json操作的注意事项
May 02 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
Sep 05 Python
Python+selenium点击网页上指定坐标的实例
Jul 05 Python
通过PHP与Python代码对比的语法差异详解
Jul 10 Python
Golang GBK转UTF-8的例子
Aug 26 Python
Python 70行代码实现简单算式计算器解析
Aug 30 Python
Python 支持向量机分类器的实现
Jan 15 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
Apr 10 Python
python读csv文件时指定行为表头或无表头的方法
Jun 26 #Python
对Python3之方法的覆盖与super函数详解
Jun 26 #Python
python调用pyaudio使用麦克风录制wav声音文件的教程
Jun 26 #Python
python装饰器常见使用方法分析
Jun 26 #Python
解决python super()调用多重继承函数的问题
Jun 26 #Python
Python实现获取系统临时目录及临时文件的方法示例
Jun 26 #Python
python里dict变成list实例方法
Jun 26 #Python
You might like
php图片验证码代码
2008/03/27 PHP
php通过array_merge()函数合并两个数组的方法
2015/03/18 PHP
php实现读取和写入tab分割的文件
2015/06/01 PHP
THINKPHP3.2使用soap连接webservice的解决方法
2017/12/13 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
Apply an AutoFormat to an Excel Spreadsheet
2007/06/12 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
2015/03/27 Javascript
JavaScript中的条件判断语句使用详解
2015/06/03 Javascript
在JavaScript中使用NaN值的方法
2015/06/05 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
JS重学系列之聊聊new操作符
2019/03/04 Javascript
swiper自定义分页器的样式
2020/09/14 Javascript
编写Python爬虫抓取暴走漫画上gif图片的实例分享
2016/04/20 Python
python遍历目录的方法小结
2016/04/28 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
Python3爬虫全国地址信息
2019/01/05 Python
django框架forms组件用法实例详解
2019/12/10 Python
详解Django配置JWT认证方式
2020/05/09 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
css3弹性盒模型(Flexbox)详细介绍
2014/10/08 HTML / CSS
财务会计实习报告体会
2013/12/20 职场文书
董事长助理岗位职责
2014/02/18 职场文书
学习教师敬业奉献模范事迹材料思想汇报
2014/09/19 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
公司感谢信范文
2015/01/22 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书
2015年销售人员工作总结
2015/04/07 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
毕业赠语大全
2015/06/23 职场文书