利用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判断列表是否已排序的各种方法及其性能分析
Jun 20 Python
python3个性签名设计实现代码
Jun 19 Python
numpy 计算两个数组重复程度的方法
Nov 07 Python
python利用ffmpeg进行录制屏幕的方法
Jan 10 Python
如何在Django中设置定时任务的方法示例
Jan 18 Python
Python3模拟登录操作实例分析
Mar 12 Python
python3.4 将16进制转成字符串的实例
Jun 12 Python
python语言线程标准库threading.local解读总结
Nov 10 Python
Python程序控制语句用法实例分析
Jan 14 Python
pytorch实现对输入超过三通道的数据进行训练
Jan 15 Python
python实现坦克大战
Apr 24 Python
Keras 利用sklearn的ROC-AUC建立评价函数详解
Jun 15 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
Thinkphp5 自定义上传文件名的实现方法
2019/07/23 PHP
laravel框架数据库配置及操作数据库示例
2019/10/10 PHP
jquery 分页控件实现代码
2009/11/30 Javascript
基于JQuery的简单实现折叠菜单代码
2010/09/15 Javascript
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
Javascript基础教程之for循环
2015/01/18 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
2015/03/03 Javascript
Nodejs实现批量下载妹纸图
2015/05/28 NodeJs
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
javascript定义类和类的实现实例详解
2015/12/01 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
Angular模板表单校验方法详解
2017/08/11 Javascript
最基础的vue.js双向绑定操作
2017/08/23 Javascript
详解Vue如何支持JSX语法
2017/11/10 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
详解VS Code使用之Vue工程配置format代码格式化
2019/03/20 Javascript
socket在egg中的使用实例代码详解
2019/05/30 Javascript
Vue Components 数字键盘的实现
2019/09/18 Javascript
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
对Python实现简单的API接口实例讲解
2018/12/10 Python
Python 循环终止语句的三种方法小结
2019/06/24 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
python字典setdefault方法和get方法使用实例
2019/12/25 Python
python 实现全球IP归属地查询工具
2020/12/18 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
HTML5 离线应用之打造零请求、无流量网站的解决方法
2013/04/25 HTML / CSS
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
.NET笔试题(20个问题)
2016/02/02 面试题
UNIX文件系统分类
2014/11/11 面试题
党的群众路线教育实践活动心得体会900字
2014/03/07 职场文书
企业党建工作总结2015
2015/05/26 职场文书
中学生国庆节演讲稿2015
2015/07/30 职场文书
Python机器学习之底层实现KNN
2021/06/20 Python
python常见的占位符总结及用法
2021/07/02 Python