利用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生成随机验证码(中文验证码)示例
Apr 03 Python
python打开文件并获取文件相关属性的方法
Apr 23 Python
Python实现股市信息下载的方法
Jun 15 Python
pycharm中连接mysql数据库的步骤详解
May 02 Python
python奇偶行分开存储实现代码
Mar 19 Python
Python面向对象之类和实例用法分析
Jun 08 Python
基于python 微信小程序之获取已存在模板消息列表
Aug 05 Python
Python图片的横坐标汉字实例
Dec 04 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
让Django的BooleanField支持字符串形式的输入方式
May 20 Python
python函数指定默认值的实例讲解
Mar 29 Python
opencv用VS2013调试时用Image Watch插件查看图片
Jul 26 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上传文件的增强函数
2010/07/21 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
Chrome Web App开发小结
2014/09/04 PHP
js 代码集(学习js的朋友可以看下)
2009/07/22 Javascript
jquery 关于event.target使用的几点说明介绍
2013/04/26 Javascript
jQuery中parents()方法用法实例
2015/01/07 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
利用jQuery异步上传文件的插件用法详解
2017/07/19 jQuery
ES6 迭代器与可迭代对象的实现
2019/02/11 Javascript
vue3 源码解读之 time slicing的使用方法
2019/10/31 Javascript
微信小程序picker组件两列关联使用方式
2020/10/27 Javascript
[02:23]完美世界全国高校联赛街访DOTA2第一期
2019/11/28 DOTA
Python、Javascript中的闭包比较
2015/02/04 Python
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
Python numpy生成矩阵、串联矩阵代码分享
2017/12/04 Python
Python 记录日志的灵活性和可配置性介绍
2018/02/27 Python
python处理csv中的空值方法
2018/06/22 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
在Python中预先初始化列表内容和长度的实现
2019/11/28 Python
如何创建一个Flask项目并进行简单配置
2020/11/18 Python
Jupyter Notebook 远程访问配置详解
2021/01/11 Python
HMV日本官网:全球知名的音乐、DVD和电脑游戏零售巨头
2016/08/13 全球购物
携程英文网站:Trip.com
2017/02/07 全球购物
丝芙兰新加坡官网:Sephora新加坡
2018/12/04 全球购物
俄罗斯香水和化妆品网上商店:NOTINO.ru
2019/12/17 全球购物
外贸实习生自荐信范文
2013/11/24 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
水利公司纪检监察自我鉴定
2014/02/25 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
个人担保书范文
2014/05/20 职场文书
三八妇女节标语
2014/10/09 职场文书
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android
nginx结合openssl实现https的方法
2021/07/25 Servers
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python
一文了解MySQL二级索引的查询过程
2022/02/24 MySQL