股票数据读取与K线图绘制 | 更文挑战

857 阅读3分钟

“这是我参与更文挑战的第9天,活动详情查看: 更文挑战

首先安装可以获取股价数据的Tushare库,推荐使用pip安装法。只需通过如下3行代码便可获取到股票基本数据。

import tushare as ts
df = ts.get_k_data('000002',start = '2009-01-01',end='2019-01-01')
df.head()

第1行代码引入Tushare库并简写为ts。第2行代码通过get_k_data()函数获取上市公司万科从2009-01-01到2019-01-01这10年的股票日线级别的数据,其中第1个参数'000002'表示股票代码('000002'对应的股票是万科A),第2个参数start表示起始日期,第3个参数end表示结束日期。这里获得的是一个DataFrame格式的二维表格,将其赋给变量df。该行代码也可以简写为如下形式。

df = ts.get_k_data('000002',start = '2009-01-01',end='2019-01-01')

第3行代码通过df.head()获取二维表格的前5行内容,最终效果如下图所示。

image.png

上图中的date为交易日期,open为开盘价,close为收盘价,high为最高价,low为最低价,volume为成交量,code为股票代码。

若要将获取的数据写入Excel工作簿,代码如下。

df.to_excel('股价数据.xlsx',index = False)

这里采用的是相对文件路径,并设置index参数为False,表示忽略原来的行索引,运行后会在代码文件所在文件夹生成一个名为“股价数据.xlsx”的Excel工作簿。

2.绘制股价走势图

下面将获取到的股价数据以可视化的图表形式展示出来。先利用set_index()函数将日期设置为行索引,以便直接使用pandas库绘图,代码如下。

df.set_index('date',inplace = True)

此时的二维表格的部分内容如下图所示。

image.png

然后使用pandas库的plot()函数绘制股价走势图,代码如下。因为股价走势图是折线图,而plot()函数默认绘制的就是折线图,所以不需要指定kind参数。在金融领域通常用收盘价作为当天价格来绘制股价走势图,因此这里选择的是close列。

df['close'].plot()

plot()函数默认以行索引作为横坐标,因为前面设置了日期为行索引,所以绘制效果如下图所示。

image.png

如果想为图表添加标题,可以在plot()函数中设置title参数,代码如下

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SiHei']
df['close'].plot(title = '万科股价走势图')

绘制效果如下图所示。

image.png

补充知识点:直接使用Matplotlib库绘制图表

因为df['date']是string字符串类型的,若直接用于画图,横坐标会显得很密集,影响美观,所以这里通过datetime.datetime.strptime()函数将其转化为timestamp时间戳格式,这样Matplotlib库便会自动间隔显示日期。