利用tushare获取A股收盘价,画时间轴折线图
2019-03-16 本文已影响0人
伏星宇
带时间轴的折线图
做量化研究,没有数据可谓是巧妇难为无米之炊,而tushare为我们提供了非常给力的国内金融数据api。
自从推出pro版本之后,该平台的表现更加稳定。详细介绍请参照官网:https://tushare.pro/
下面在pycharm中演示如何利用tushare的通用行情接口获取A股数据,并画出带时间轴的折线图。
注意:通过ts.pro_bar()获得的是个股行情的Dataframe。以美的集团(000333.SZ)为例,看看可以获得哪些数据:
输出如下
做量化研究,没有数据可谓是巧妇难为无米之炊,而tushare为我们提供了非常给力的国内金融数据api。
自从推出pro版本之后,该平台的表现更加稳定。详细介绍请参照官网:https://tushare.pro/
下面在pycharm中演示如何利用tushare的通用行情接口获取A股数据,并画出带时间轴的折线图。
事实上获取数据非常方便,只需要3行代码:
import tushare as ts
api = ts.pro_api('your token')
df = ts.pro_bar(pro_api=api, ts_code='000001.SZ', adj='qfq', start_date='20180101', end_date='20181011')
接口具体输入参数如下:
注意:通过ts.pro_bar()获得的是个股行情的Dataframe。以美的集团(000333.SZ)为例,看看可以获得哪些数据:
print(df.head())
输出如下:
输出如下
再利用python强大的绘图库matplotlib,我们就可以画出简单的带时间轴的收盘价折线图了。
研究了一下午,找出一种较为简单暴力,个人认为也足够美观的画法,即本文开头的那张图。
以2015-01-01至2019-03-08之间,美的集团(000333.SZ)和格力电器(000651.SZ)的收盘价为例,可以得到本文最开始的效果图(价格已进行前复权修正)。
更多接口和用法,请查看tushare官网的api文档:https://tushare.pro/document/2
全部代码如下:
# -*- coding: UTF-8 -*-
import tushare as ts
import matplotlib.pyplot as plt
from datetime import datetime
import matplotlib.dates as mdates
def drawline(tcode, sdate, edate):
datadf = ts.pro_bar(pro_api=api,
ts_code = tcode,
start_date = sdate,
end_date = edate,
#前复权处理
adj = 'qfq')
stockline = [datetime.strptime(d, '%Y%m%d').date() for d in datadf.trade_date]
plt.plot(stockline, datadf.close, '-', label = datadf.ts_code[0])
def drawmain():
#设置时间按“年月”的格式显示
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y%m'))
#X轴按年进行标记,还可以用MonthLocator()和DayLocator()
plt.gca().xaxis.set_major_locator(mdates.MonthLocator()),
#自动旋转日期标记以避免重叠
plt.gcf().autofmt_xdate()
#显示图例
plt.legend()
#显示图片
plt.show()
def taskmain():
for cd in tscode:
drawline(cd, startdate, enddate)
#在tushare官网注册后,进入个人中心得到你的唯一指定token,替换***
ts.set_token('***')
#初始化api
api = ts.pro_api()
#指定起止日期
startdate = '2015-01-01'
enddate = '2019-03-08'
#指定股票代码
tscode = {'000333.SZ', '000651.SZ'}
#主程序
taskmain()
drawmain()