300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Python财经实践 股票数据获取及可视化展示

Python财经实践 股票数据获取及可视化展示

时间:2020-09-27 23:57:43

相关推荐

Python财经实践 股票数据获取及可视化展示

来源:志斌的python笔记

今天跟大家分享一下,如何将获取股票数据以及将数据进行可视化展示。

01

股票数据获取

这次跟大家分享一种不需要爬虫就可以获取股票数据的方式。Python有一个第三方库—Tushare库,我们使用它就可以轻松的获取股票的数据。

因为它是第三方库,所以我们需要用pip对它进行安装。

pip install Tushare

安装好以后,我们就可以尝试使用它来进行获取数据了,代码如下:

import tushare as tsdf = ts.get_k_data('000002',start='-01-01',end='-01-01')df.to_excel('股价数据.xlsx')

查看一下获取的数据:

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

02

绘制股价走势图

上面我们已经获取到了股票的数据,那么现在我们就可以开始进行可视化图表绘制了。

在绘图之前,我们需要对数据进行简单的处理,要先将date设置成行索引,代码如下:

df = df.set_index('date')

查看一下现在数据样式:

我们来进行绘制,代码如下:

plt.rcParams['font.sans-serif'] = ['SimHei'] #解决中文乱码问题df['close'].plot(title='股价走势图')plt.show()

股价走势图:

我们还可以尝试用matplotlib库来进行绘制,代码如下:

plt.rcParams['font.sans-serif'] = ['SimHei'] #解决中文乱码问题plt.rcParams['axes.unicode_minus'] = False # 解决“-”显示为方块的问题df = ts.get_k_data('000002',start='-01-01',end='-01-01')df['date'] = df['date'].apply(lambda x:datetime.strptime(x,'%Y-%m-%d'))plt.plot(df['date'],df['close'])plt.title('股价走势图')plt.show()

股价走势图:

03

绘制K线图

(来源:东方财富网)

我们在看股票的时候,经常会遇到上面这种K线图,别看它花里胡哨的,其实很容易绘制的,下面我们就一起来看看,这种K线图应该怎么绘制。

首先,先来给大家介绍一点K线图的基本知识。

K线图有一个别名叫蜡烛图,它主要是通过股票的最高价、开盘价、最低价和收盘价进行绘制的。K线分为两种,如果当天的收盘价高于开盘价,则称为阳线,绘制成红色;同理,如果当天收盘价低于开盘价,则称为阴线,绘制成绿色。

对K线图有了简单的了解,我们就开始进行绘制吧。Python绘制K线图并不难,主要是借用了mpl_finance库,这里我们安装一下这个库,命令如下:

pip install mpl_finance

在进行绘制之前,我们需要先对日期数据进行处理,因为mpl_finance库读取日期数据有特定的格式,代码如下:

def date_to_num(dates):num_time = []for date in dates:date_time = datetime.datetime.strptime(date,'%Y-%m-%d')num_date = date2num(date_time)num_time.append(num_date)return num_timedf_arr = df.valuesdf_arr[:,0] = date_to_num(df_arr[:,0])

我们打印一下前10条数据看一下结果:

从上面,我们可以看到,文本数据的日期,都转化为了数字格式。

现在我们可以开始绘制K线图了,代码如下:

figsize,axis = plt.subplots(figsize=(15,6))mpf.candlestick_ochl(axis,df_arr,width=0.6,colorup='red',colordown='green',alpha=1.0)plt.grid(True)ax.xaxis_date()plt.title('K线图')plt.rcParams['font.sans-serif'] = ['SimHei'] #解决中文乱码问题plt.rcParams['axes.unicode_minus'] = False # 解决“-”显示为方块的问题plt.show()

K线图:

但是,我们与上图进行对比后发现,这个K线图还缺少均线图,所以我们再来给它加上均线图,核心代码如下:

# 绘图部分fig,ax =plt.subplots(figsize=(15,6))mpf.candlestick_ochl(ax,df_arr,width=0.6,colorup='red',colordown='green',alpha=1.0) # 绘制K线图plt.plot(df_arr[:,0],df['MA5'])plt.plot(df_arr[:,0],df['MA10'])plt.grid(True)ax.xaxis_date()plt.title('东方财富网')plt.xlabel('日期')plt.ylabel('价格')plt.rcParams['font.sans-serif'] = ['SimHei'] #解决中文乱码问题plt.rcParams['axes.unicode_minus'] = False # 解决“-”显示为方块的问题plt.show()

K线图+均线图:

04

拓展

K线图和均线图会绘制后,我们就可来学习绘制每日成交量柱形图了,它们三张图往往是一起出现的。核心代码如下:

#每日成交量柱形图绘制部分ax2.bar(df_arr[:,0],df_arr[:,5])ax2.set_xlabel('日期')ax2.set_ylabel('成交量')ax2.grid(True)ax2.xaxis_date()

每日成交量柱形图:

05

小结

1. 本文详细的介绍了如何绘制股票K线图+均线图,并且拓展了每日成交量柱形图的绘制方式,感兴趣的读者可以尝试复现一下。

2. 本文仅供学习参考,不做它用。

-------- End --------

精选资料

回复关键词,获取对应的资料:

精选视频

可视化:Plotly Express

财经:Plotly在投资领域的应用 | 绘制K线图表

排序算法:冒泡排序 | 选择排序 | 快速排序 | 归并排序 | 堆排序 | 插入排序 | 希尔排序 | 计数排序 | 桶排序

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。