利用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进行股票分析的过程中,我们可以很容易的对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线图:
来源: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