利用python numpy+matplotlib绘制股票k线图的方法
作者:冒泡泡的绿色颜料 发布时间:2022-12-16 07:21:52
标签: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线图:
来源:https://blog.csdn.net/u012041523/article/details/71107672
0
投稿
猜你喜欢
- 目录简介环境要求:安装小试一下创建爬虫将请求头转为json格式使用简介feapder 是一款上手简单,功能强大的Python爬虫框架,使用方
- 连接mysql常用工具mysql作为数据库服务器来运行,任何满足mysql通信规范的软件都可以作为客户端来连接服务器。常用的客户端:navi
- 本文实例讲述了python中尾递归用法。分享给大家供大家参考。具体分析如下:如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递
- 动机有时候需要在代码头部添加像这样的一段注释。这段注释包括了作者、代码版权许可等信息。每次重复添加都会让您觉得非常麻烦。作为开发者的您,时间
- 在settings.py里,配置如下logging:LOGGING = { 'version': 1, 'disab
- JScript 具有全范围的运算符,包括算术、逻辑、位、赋值以及其他某些运算符。算术运算符描述 符号 负值 - 递增 ++ 递减 ? 乘法
- 前言Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。
- 我就废话不多说了,大家还是直接看代码吧!print("thresh =",thresh)coords = np.colu
- 基于tkinter模块的GUIGUI是图形用户界面的缩写,图形化的用户界面对使用过计算机的人来说应该都不陌生,在此也无需进行赘述。Pytho
- 前言Pandas是为一次性处理整个行或列的矢量化操作而设计的,循环遍历每个单元格、行或列并不是它的设计用途。所以,在使用Pandas时,你应
- 前言:array.map() 是一个非常有用的映射函数:它接收一个数组和一个映射函数,然后返回一个新的映射数组。然而,有一个替代 array
- 前言遥感影像分类图一般为特定数值对应一类地物,用Python绘制时,主要在颜色的映射和对应的图例生成。plt.matplotlib.colo
- pymsqlpymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。下载安装pip3 install pymy
- 人丑就要多读书,颜值不够知识来凑,至少你可以用书籍来武装你的大脑,拯救你的人生。TIOBE编程语言排行榜前20的语言入门书籍推荐
- 一、python3的安装建议安装python3,python2在未来将不再维护。python官方下载地址https://www.python
- 一、概述前提:已安装 Python,如下图所示:1.1 检查是否已配置成功(选)1. 打开运行窗口 (1) 快捷键  
- pyinstaller 库的使用PyInstaller是一个十分有用的第三方库,它能够在Windows、Linux、Mac OS X 等操作
- 本文实例为大家分享了python利用tkinter实现屏保的具体代码,供大家参考,具体内容如下import randomimport tki
- 一、什么是索引 减少磁盘I/O和逻辑读次数的最佳方法之一就是使用【索引】 索引允许SQL Server在表中查找数据而不需要扫描整个表。 1
- 接触Python时间不长,对有些知识点,掌握的不是很扎实,我个人比较崇尚不管学习什么东西,首先一定回去把基础打的非常扎实了,再往高处走。今天