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

作者:冒泡泡的绿色颜料 时间:2022-12-16 07:21:52 

一、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线图的方法

来源:https://blog.csdn.net/u012041523/article/details/71107672

标签:python,numpy,matplotlib,k线图
0
投稿

猜你喜欢

  • seo网站如何实现301跳转?

    2010-01-15 12:59:00
  • java 查询oracle数据库所有表DatabaseMetaData的用法(详解)

    2024-01-16 02:31:33
  • Python实现把xml或xsl转换为html格式

    2023-07-08 22:53:06
  • SQL Server 服务器优化技巧浅谈

    2024-01-13 17:31:01
  • python通过pil模块获得图片exif信息的方法

    2021-08-26 14:31:21
  • sqlserver数据库导入方法的详细图文教程

    2024-01-15 16:52:24
  • 五个Python迷你版小程序附代码

    2023-09-28 02:55:26
  • python检查URL是否正常访问的小技巧

    2022-02-23 09:23:56
  • python @property的用法及含义全面解析

    2023-04-06 00:42:28
  • 给Django Admin添加验证码和多次登录尝试限制的实现

    2022-10-17 01:09:34
  • 微信小程序开发之点击按钮退出小程序的实现方法

    2024-05-03 15:04:05
  • ibatis简单实现与配置

    2023-03-07 20:33:17
  • uniapp页面跳转的五种方式总结

    2023-08-23 19:46:24
  • Python中的函数式编程:不可变的数据结构

    2023-09-05 07:16:35
  • Python配置pip国内镜像源的实现

    2021-09-17 03:21:24
  • keras 多任务多loss实例

    2022-09-21 12:49:33
  • Python爬虫 scrapy框架爬取某招聘网存入mongodb解析

    2023-06-23 09:35:59
  • 解决pandas中读取中文名称的csv文件报错的问题

    2021-08-07 00:53:40
  • PS中执行N遍选定动作的脚本

    2008-02-22 21:33:00
  • 深入学习SQL Server聚合函数算法优化技巧

    2024-01-23 20:36:14
  • asp之家 网络编程 m.aspxhome.com