基于python的股票数据的读取及可视化(K线图) 您所在的位置:网站首页 苹果股票历史价格走势图 基于python的股票数据的读取及可视化(K线图)

基于python的股票数据的读取及可视化(K线图)

2023-12-17 22:09| 来源: 网络整理| 查看: 265

文章目录 1.读取数据2.绘制股票走势图3.绘制K线图

1.读取数据

TuShare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据来源方面极大地减轻了工作 量,使他们更加专注于策略和模型的研究与实现上。考虑到Python pandas包在金融量化分析中体现出的优势,TuShare返回的绝大部分的数据格式都是pandas DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。当然,如果您习惯了用Excel或者关系型数 据库做分析,您也可以通过TuShare的数据存储功能,将数据全部保存到本地后进行分析。应一些用户的请求,从0.2.5版本开始,TuShare同时 兼容Python 2.x和Python 3.x,对部分代码进行了重构,并优化了一些算法,确保数据获取的高效和稳定。 python的强大之处就在于有一帮第三方库的兄弟,股票方面也是如此,今天给大家讲一下这个库,他就是tushare库(官方地址:http://tushare.org/),大家可以直接用pip安装,以Windows安装为例吧。 安装过程可以参考我以前的博客:点击查看python用命令安装第三方库教程 我下面以jupyter notebook安装为例,给大家展示一下: 在这里插入图片描述 安装完成以后接下来就是我们的获取股票数据。

import tushare as ts df = ts.get_k_data('000002',start = "2010-01-01",end = '2020-01-01') df.set_index('date',inplace = True) df.head()

获取数据结果展示: 在这里插入图片描述 我们后面案例通过万科A来进行的,所以我们先获取一下万科A的数据,通过get_k_data()函数获取上市公司万科从2009-01-01到2019-01-01这十年的股票日线级别的数据,参数“000002”为万科的股票代码。

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

结果展示: ‘’在这里插入图片描述 注:open 开盘价,close 收盘价,high 最高价,low为最低价,volume为成交量,code为股票代码。 若想获取数据写入Excel工作簿中,我们可以按如下代码:

df.to_excel('D:\\Python\\股价数据.xlsx',index = False)

注意:index参数False表示忽略原来的行索引,运行后生成一个名为“股价数据.xlsx”的Excel文件。 如上面我是设置了将文件保存到D:\Python\下面,完全可以不用设置,只要自己知道默认文件夹在哪,一定要自己方便查找。

2.绘制股票走势图

下面绘制一下股票走势图:

import tushare as ts import matplotlib.pyplot as plt df = ts.get_k_data('000002',start ='2009-01-01',end='2019-01-01') plt.rcParams['font.sans-serif']=['simHei']#用来正常显示中文 df['close'].plot(title = '股票走势图')

结果展示: 在这里插入图片描述 上述使用的是plot()函数,我们也可以直接使用Matplotlib函数库的一些功能。

import tushare as ts from datetime import datetime import matplotlib.pyplot as plt df = ts.get_k_data('000002',start ='2009-01-01',end='2019-01-01') #要注意细节,调整日期格式,让横坐标的显示效果更佳清洗,美观 df['date'] = df['date'].apply(lambda x:datetime.strptime(x,'%Y-%m-%d')) plt.plot(df['date'],df['close']) plt.show()

运行结果展示: 在这里插入图片描述

3.绘制K线图

1.安装绘制K线图的库

K线分为两种,如果当天收盘价高于开盘价,即当天价格上涨,称为阳线。通常绘为红线。 反之就是当天价格上涨,称为阴线,通常绘为绿线。 python在绘画K线的时候也用到一个库,mpl_finance库,参照以前推送安装教程,该库中的candlestick_ochl()函数绘制K线图,下面就用python编写的案例大家参考一下。 安装成功截图:(jupyter notebook安装方法) 在这里插入图片描述 2.获取数据

import tushare as ts import matplotlib.pyplot as plt import mpl_finance as mpf import seaborn as sns #引入图表美化库 sns.set()#激活 df = ts.get_k_data('000002','2019-06-01','2019-09-30') df.head()

运行结果: 在这里插入图片描述 3.日期格式调整以及表格转换

from matplotlib.pylab import date2num import datetime #导入日期格式涉及的两个库 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_time df_arr = df.values #将DataFrame中数据转换成二维数组 df_arr[:,0] = date_to_num(df_arr[:,0])# 将二维数组中日期转换成数字格式

4.绘制K直线

fig,ax = plt.subplots(figsize = (15,6)) mpf.candlestick_ochl(ax,df_arr,width = 0.6,colorup = 'r',colordown = 'g',alpha = 1.0) plt.grid(True)#绘制网格线 ax.xaxis_date()#设置x轴的刻度线格式为常规日期格式

运行结果展示: 在这里插入图片描述 添加均线图:以添加5日均线和10日均线为例、

df['MA5'] = df['close'].rolling(5).mean() df['MA10'] = df['close'].rolling(10).mean()

将其制成图表查看:

plt.rcParams['font.sans-serif'] = ['SimHei'] #设置正常中文显示 fig,ax = plt.subplots(figsize = (15,6)) mpf.candlestick_ochl(ax,df_arr,width = 0.6,colorup = "r",colordown = 'g',alpha = 1.0) #绘制K直线 plt.plot(df_arr[:,0],df["MA5"]) plt.plot(df_arr[:,0],df['MA10']) plt.grid(True) #绘制网格线 plt.title('万科A')#标题 plt.xlabel('日期')#X轴 plt.ylabel('价格')#y轴 ax.xaxis_date()

运行结果: 在这里插入图片描述 我们在上面基础上再添加一个日成交量柱形图。代码如下:

fig,axes = plt.subplots(2,1,sharex = True,figsize = (15,8)) ax1,ax2 = axes.flatten() #绘制第一张子图:K线图和均线图 mpf.candlestick_ochl(ax1,df_arr,width = 0.6,colorup = 'r',colordown = 'g',alpha = 1.0) ax1.plot(df_arr[:,0],df['MA5']) #绘制5日均线 ax1.plot(df_arr[:,0],df['MA10'])#绘制10日均线 ax1.set_title('万科A') ax1.set_ylabel('价格') ax1.grid(True) ax1.xaxis_date() #绘制第二张子图:每日成交柱形图 ax2.bar(df_arr[:,0],df_arr[:,5]) ax2.set_xlabel('日期') ax2.set_ylabel('成交量') ax2.grid(True) ax2.xaxis_date()

运行结果: 在这里插入图片描述 本文主要就是介绍一下通过NumPy,pandas,Matplotlib三个数据分析利器画图,利用股票数据进行一些操作,大家也可以利用这个数据,做一些数据分析,练练手。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有