1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python对阿里巴巴 谷歌 腾讯等六家公司股票数据进行分析与可视化实战(附源码 超详细)

Python对阿里巴巴 谷歌 腾讯等六家公司股票数据进行分析与可视化实战(附源码 超详细)

时间:2018-08-17 16:05:17

相关推荐

Python对阿里巴巴 谷歌 腾讯等六家公司股票数据进行分析与可视化实战(附源码 超详细)

需要源码请点赞关注收藏后评论区留言私信~~~

下面针对阿里巴巴、谷歌、亚马逊、Facebook、苹果和腾讯六家公司股票数据进行了分析与可视化描述,数据分析前需要安装互联数据获取包pandas-datareader

先使用conda安装:

1)python3环境

2)安装互联数据获取包pandas-datareader

实现步骤

1:导入模块

2:获取数据

首先定义要获取股票数据的来源和时间区间

然后分别获取阿里巴巴、谷歌、亚马逊、Facebook、苹果和腾讯的股票数据

数据说明

列名 High Low Open Close Volume

含义 最高价 最低价 开盘价 收盘价 成交量

接下来从上到下分别是阿里 谷歌 亚马逊 facebook 苹果 腾讯的股票信息

接下来我们以阿里巴巴数据为例进行详细分析 其他公司的省略

首先查看数据集情况

查看数据集统计信息

增加一列DayHL 表示日最高价和最低价之间的差值

数据可视化

下面绘制阿里巴巴的股票走势图

从图中可以看出 阿里巴巴的股票价格 6-7月涨势良好且比较稳定 从9月开始总体趋势处于下滑状态

下面绘制阿里巴巴股票成交量和股价之间的散点图

接着计算相关系数矩阵

导入另外五家公司的股价数据 并且对六家公司的股价进行走势比较 并画出曲线图

因为谷歌和亚马逊的股价比较高,造成我们看不出其他4家公司的股票走势。 所以根据股价我们可以将这6家公司分成2组,一组是股价较高的谷歌和亚马逊。另外一组是股价较低的4家公司

接下来比较六家公司股票的平均值

可见亚马逊和谷歌非常的高,腾讯比较低

代码

部分代码如下 需要全部代码请点赞关注收藏后评论区留言私信~~~

#导入包#数据分析包import pndas as pdfrom panda_datareader import dataimport matlotlibimport matplotlib.pyplot as pltfont = {'mily' : 'SimHei','weight' : 'bold','size' : '12'}plt.rc('font', **font)# 步骤一(设置字体的更多属性)plt.rc('xes', unicode_minus=False) # 步骤二(解决坐标轴负数的负号显示问题)# 存在的问题:由于是从国外获取股票数据,会由于网络不稳定,获取数据失败,多运行几次这个cell就好了'''获取国内股票数据的方式是:“股票代码”+“对应股市”(港股为.hk,A股为.ss)例如腾讯是港股是:0700.hk'''#字典:6家公司的股票gafataDict={'谷歌':'GOOG','亚马逊':'AMZN','Facebook':'FB',= '-05-01''''get_data_yahoo表示从雅虎数据源获取股票数据雅虎股票数据源文档:http://pandas-datareader.readthedocs.io/en/latest/remote_data.html#yahoo-finance'''# # 获取哪段时间范围的股票数据# start_date = '-01-01'# end_date = '-05-01'#获取阿里巴巴股票数据ALbbDf = data.get_data_yahoo(gafataDict['阿里巴巴'],start_date, end_date)#查看前5行数ALbbDf.tail()#获取谷歌股票数据GoogleDf=data.get_data_yahoo(gafataDict['谷歌'],start_date, end_date)GoogleDf.tail()#获取亚马逊股票数据AmazDf=data.get_data_yahoo(gafataDict['亚马逊'],start_date, end_date)AmazDf.tail()#获取Facebook股票数据FBDf=data.get_data_yahoo(gafataDict['Facebook'],start_date, end_date)FBDf.tail()#导入可视化包import matplotlib.pyplot as pltfont = {'family' : 'SimHei','weight' : 'bold','size' : '15'}plt.rc('font', **font)# 步骤一(设置字体的更多属性)plt.rc('axes', unicode_minus=False) # 步骤二(解决坐标轴负数的负号显示问题)'''横轴x是股票时间(babaDf.index是Pandas二维数据Dataframe的行索引,这里是时间序列)纵轴y是收盘价Close这一列数据plot默认是线条图'''ALbbDf.plot(y = "Close",color = "blue")#x坐标轴文本plt.xlabel('时间')#y坐标轴文本plt.ylabel('股价(美元)')plt.xticks(rotation = 60)#图片标题plt.title('初至今阿里巴巴股价走势')#显示图例plt.grid()#显示图形plt.show()'''我们给plot传入的横轴x坐标轴数据成交量这一列的数据,纵轴y坐标轴数据是收盘价这一列的数据,同时增加了一个参数叫kind这个值表示绘制图形的类型,这里的值等于scatter表示绘制散点图。kind取值(图形类型)参考官方文档:/pandas-docs/stable/visualization.html'''matplotlib.rcParams['font.size'] = 12ALbbDf.plot(x='Volume',y='Close',kind='scatter')#x坐标轴文本plt.xlabel('成交量')#y坐标轴文本plt.ylabel('股价(美元)')#图片标题plt.title('成交量和股价')#显示图形plt.show()#绘制谷歌的画纸1plt.figure(figsize=(3,10))ax1=GoogleDf.plot(y='Close')#通过指定画纸ax,在同一张画纸上绘图#亚马逊AmazDf.plot(ax=ax1,y='Close')#FacebookFBDf.plot(ax=ax1,y='Close')#苹果AppleDf.plot(ax=ax1,y='Close')#阿里巴巴ALbbDf.plot(ax=ax1,y='Close')#腾讯TCDf.plot(ax=ax1,y='Close')#x坐标轴文本plt.xlabel('时间')#y坐标轴文本plt.ylabel('股价(美元)')#图片标题plt.title('至今6家公司股价走势比较')plt.legend()plt.show()'''使用label自定义图例'''#绘制谷歌的画纸1ax1=GoogleDf.plot(y='Close',label='谷歌')#通过指定画纸ax,在同一张画纸上绘图#亚马逊AmazDf.plot(ax=ax1,y='Close',label='亚马逊')#FacebookFBDf.plot(ax=ax1,y='Close',label='Facebook')#苹果AppleDf.plot(ax=ax1,y='Close',label='苹果')#阿里巴巴ALbbDf.plot(ax=ax1,y='Close',label='阿里巴巴')#腾讯TCDf.plot(ax=ax1,y='Close',label='腾讯')#x坐标轴文本plt.xlabel('时间')#y坐标轴文本plt.ylabel('股价(美元)')#图片标题plt.title('至今6家公司股价走势比较')#显示网格plt.show()'''第1组:谷歌,亚马逊'''#绘制谷歌的画纸2ax2=GoogleDf.plot(y='Close',label='谷歌')#通过指定画纸ax,在同一张画纸上绘图#亚马逊amazDf.plot(ax=ax2,y='Close',label='亚马逊')#x坐标轴文本plt.xlabel('时间')#y坐标轴文本plt.ylabel('股价(美元)')#图片标题plt.title('谷歌和亚马逊股价走势比较')#显示网格plt.grid(True)plt.show()

创作不易 觉得有帮助请点赞关注收藏~~~

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