使用Python画股票的K线图

首页 > 财经 > 正文 2021-06-04

发表自话题:怎么画k线图

导言

本文简单介绍了如何从网易财经获取某支股票的价格数据,并根据价格数据画出相应的
日K线图。有助于新手了解并使用Python的相关功能。包括列表、自定义函数、for循
环、if函数以及如何使用matplotlib进行作图等内容。

第一步:从网易财经获取股票的价格数据

我一般是在网易财经查看某支股票的价格和成交数据,网易财经可以查到任意沪深的股票,我们使用招商银行的数据作为参考。

1、构建爬虫获取股票价格数据

这里不对Python做介绍了,如果需要了解什么是Python,可以自行百度或者访问Python官网.

加载需要的模块

代码如下:

import re,urllib2,time,csv,datetime import matplotlib as mpl import matplotlib.pyplot as plt import matplotlib.finance as mpf import matplotlib.dates as mpd

其中urllib2是用来解析HTML内容的包,主要是从url获取网页内容;re是正则表达式包,本文会使用正则表达式来从抓取的网页数据中获取到有用的数据;time和datetime是时间相关的包,主要用来设定要抓取的时间以及其它相关时间的处理;csv包是用来生成csv数据(该数据会被用于R来画K线图),其余的几个包会在使用时单独介绍,你也可以在需要的时候在程序头部补充import。

设定时间相关

代码如下:

t = time.localtime() # 获取当前的本地时间 year = range(t[0],1989,-1) # 设定年度范围,从当前年度至沪市开市的年份倒序生成 season = range(4,0,-1) # 生成季度的数据列表,从4季度到1季度倒序生成

为什么要这么设定时间呢?仔细的查看网易股票数据的url,是按照年度和季度来构成的,我们发现搜索数据也是用年度和季度来搜索的。


招商银行2017年1季度数据


其url构成如下:http://quotes.money.163.com/trade/lsjysj_600036.html?year=2017&season=1可见可拆为6个子字符串,分别是http://quotes.money.163.com/trade/lsjysj_、600036、.html?year=、2017、&season=、1。其中第2、4、6个子串可以参数化输入获取特定需求的数据。

定义获取数据的函数

代码如下:

def getData(url): request = urllib2.Request(url) response = urllib2.urlopen(request) content = response.read() pattern = re.compile('

标签组:[股票] [python

上一篇画k线图常用哪些python库?

下一篇如何用word做k线图?

相关阅读

相同话题文章

推荐内容

热门阅读