利用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中的字典详细介绍
Sep 18 Python
wxPython窗口中文乱码解决方法
Oct 11 Python
python获取一组数据里最大值max函数用法实例
May 26 Python
Python工程师面试必备25条知识点
Jan 17 Python
python使用json序列化datetime类型实例解析
Feb 11 Python
Python随机函数random()使用方法小结
Apr 29 Python
解决Mac下首次安装pycharm无project interpreter的问题
Oct 29 Python
Python socket模块实现的udp通信功能示例
Apr 10 Python
python绘制多个子图的实例
Jul 07 Python
python实现文件的分割与合并
Aug 29 Python
简单了解Python变量作用域正确使用方法
Jun 12 Python
python中entry用法讲解
Dec 04 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 计算两个特别大的整数实例代码
2018/05/07 PHP
php 使用mpdf实现指定字段配置字体样式的方法
2019/07/29 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
2020/02/10 PHP
详解PHP中curl_multi并发的实现
2020/06/08 PHP
Jquery实现点击按钮,连续地向textarea中添加值的实例代码
2014/03/08 Javascript
node.js正则表达式获取网页中所有链接的代码实例
2014/06/03 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
JavaScript如何禁止Backspace键
2015/12/02 Javascript
JS HTML5实现拖拽移动列表效果
2020/08/27 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
2016/11/10 Javascript
JavaScript的兼容性与调试技巧
2016/11/22 Javascript
微信小程序实战之轮播图(3)
2017/04/17 Javascript
vue计算属性及使用详解
2018/04/02 Javascript
JS实现自定义弹窗功能
2018/08/08 Javascript
小程序实现多选框功能
2018/10/30 Javascript
少女风vue组件库的制作全过程
2019/05/15 Javascript
vue项目中使用scss的方法步骤
2019/05/16 Javascript
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
2019/09/21 Javascript
[06:06]2018DOTA2亚洲邀请赛主赛事第四日战况回顾 全明星赛欢乐上演
2018/04/07 DOTA
python 解析html之BeautifulSoup
2009/07/07 Python
Python写的一个简单监控系统
2015/06/19 Python
Python实现的多进程拷贝文件并显示百分比功能示例
2019/04/09 Python
python实现月食效果实例代码
2019/06/18 Python
python判断无向图环是否存在的示例
2019/11/22 Python
Python原始套接字编程实例解析
2020/01/29 Python
Java如何基于wsimport调用wcf接口
2020/06/17 Python
python与idea的集成的实现
2020/11/20 Python
加拿大领先的优质厨具产品在线购物网站:Golda’s Kitchen
2017/11/17 全球购物
MIRTA官网:手工包,100%意大利制造
2020/02/11 全球购物
历史专业个人求职信范文
2013/12/07 职场文书
小学生暑假家长评语
2014/04/17 职场文书
竞选学委演讲稿
2014/09/13 职场文书
教师学期末个人总结
2015/02/13 职场文书
爱护环境卫生倡议书
2015/04/29 职场文书
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
2022/07/15 Servers