利用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 爬虫爬取指定博客的所有文章
Feb 17 Python
Python 函数基础知识汇总
Mar 09 Python
python设定并获取socket超时时间的方法
Jan 12 Python
Python判断对象是否相等及eq函数的讲解
Feb 25 Python
python实现整数的二进制循环移位
Mar 08 Python
python 实现快速生成连续、随机字母列表
Nov 28 Python
python实现将视频按帧读取到自定义目录
Dec 10 Python
使用Python获取当前工作目录和执行命令的位置
Mar 09 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
Apr 16 Python
使用keras根据层名称来初始化网络
May 21 Python
python能开发游戏吗
Jun 11 Python
Python私有属性私有方法应用实例解析
Sep 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
用PHP写的MySQL数据库用户认证系统代码
2007/03/22 PHP
php文档更新介绍
2011/07/22 PHP
新手菜鸟必读:session与cookie的区别
2013/08/22 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
2014/05/08 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
js操作数据库实现注册和登陆的简单实例
2016/05/26 Javascript
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
Webpack框架核心概念(知识点整理)
2017/12/22 Javascript
electron制作仿制qq聊天界面的示例代码
2018/11/26 Javascript
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
layui数据表格跨行自动合并的例子
2019/09/02 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
2020/01/05 Javascript
jquery将信息遍历到界面上实例代码
2020/01/21 jQuery
微信小程序自定义底部弹出框动画
2020/11/18 Javascript
vue 通过base64实现图片下载功能
2020/12/19 Vue.js
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
Python3导入自定义模块的三种方法详解
2018/04/13 Python
python yield关键词案例测试
2019/10/15 Python
Python综合应用名片管理系统案例详解
2020/01/03 Python
新加坡领先的时尚生活方式零售品牌:CHARLES & KEITH
2018/01/16 全球购物
Hibernate持久层技术
2013/12/16 面试题
物业门卫岗位职责
2013/12/28 职场文书
金融行业职业生涯规划范文
2014/01/17 职场文书
《我的信念》教学反思
2014/02/15 职场文书
入党思想汇报怎么写
2014/04/03 职场文书
2015年宣传思想工作总结
2015/05/22 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书
餐厅如何利用“营销策略”扭转亏本局面
2019/10/15 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
opencv读取视频并保存图像的方法
2021/06/04 Python
深入浅析python3 依赖倒置原则(示例代码)
2021/07/09 Python
配置Kubernetes外网访问集群
2022/03/31 Servers
DE1107机评
2022/04/05 无线电
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang