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

 更新时间:2019年06月26日 11:39:00   作者:冒泡泡的绿色颜料  
这篇文章主要介绍了利用python numpy+matplotlib绘制股票k线图的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、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进行股票分析的过程中,我们可以很容易的对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线图如下:


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+unittest+requests实现接口自动化的方法

    python+unittest+requests实现接口自动化的方法

    这篇文章主要介绍了python+unittest+requests实现接口自动化的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • pandas中关于apply+lambda的应用

    pandas中关于apply+lambda的应用

    本文主要介绍了pandas中关于apply+lambda的应用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 人工神经网络算法知识点总结

    人工神经网络算法知识点总结

    在本篇内容里小编给大家分享了人工神经网络算法的相关知识点以及原理介绍,需要的朋友们参考下。
    2019-06-06
  • Python attrs提高面向对象编程效率详细

    Python attrs提高面向对象编程效率详细

    Python是面向对象的语言,一般情况下使用面向对象编程会使得开发效率更高,软件质量更好,并且代码更易于扩展,可读性和可维护性也更高,但是Python的类写起来是真的累,这是可以在创建类的时候自动添加上attrs模块,下面文章我们就来介绍这个东西,需要的朋友可参考一下
    2021-09-09
  • python同时遍历数组的索引和值的实例

    python同时遍历数组的索引和值的实例

    今天小编就为大家分享一篇python同时遍历数组的索引和值的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • python计算机视觉opencv卡号识别示例详解

    python计算机视觉opencv卡号识别示例详解

    这篇文章主要为大家介绍了python计算机视觉opencv卡号识别的实现示例详解,有需要的朋友可以借鉴参考下 希望能够有所帮助,祝大家多多进步
    2021-11-11
  • Python如何从txt文件中提取特定数据

    Python如何从txt文件中提取特定数据

    这篇文章主要给大家介绍了关于Python如何从txt文件中提取特定数据的相关资料,有时我们会遇到需要按行读取文本的情况,我们要读取txt文件获得数据,需要的朋友可以参考下
    2023-08-08
  • Python中__del__方法的使用方法详细解析

    Python中__del__方法的使用方法详细解析

    __del__()称为“析构方法”,用于实现对象被销毁时所需的操作,下面这篇文章主要给大家介绍了关于Python中__del__方法的使用方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • python中的turtle库函数简单使用教程

    python中的turtle库函数简单使用教程

    这篇文章主要介绍了python中的turtle库函数简单使用教程。本文通过图片的形式给大家展示的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-07-07
  • Python中的文件和目录操作实现代码

    Python中的文件和目录操作实现代码

    对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数。重要的是,这些函数无论是在Unix、Windows还是Macintosh平台上,它们的使用方式是完全一致的。
    2011-03-03

最新评论