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

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

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

先使用conda安装:

1)python3环境

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

 实现步骤

1:导入模块

2:获取数据

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

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

数据说明

列名    High   Low    Open   Close  Volume

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

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

 

 

 

 

 

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

首先查看数据集情况

 

查看数据集统计信息 

 

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

数据可视化 

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

 

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

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

接着计算相关系数矩阵

 

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

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

 

 

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

 

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

代码

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

#导入包
#数据分析包
import pndas as pd
from panda_datareader import data
import matlotlib
import matplotlib.pyplot as plt
font = {'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',
      = '2019-05-01'
'''
get_data_yahoo表示从雅虎数据源获取股票数据
雅虎股票数据源文档:http://pandas-datareader.readthedocs.io/en/latest/remote_data.html#yahoo-finance
'''
# # 获取哪段时间范围的股票数据
# start_date = '2018-01-01'
# end_date = '2019-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 plt

font = {'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('2018年初至今阿里巴巴股价走势')
#显示图例
plt.grid()

#显示图形
plt.show()
'''
我们给plot传入的横轴x坐标轴数据成交量这一列的数据,
纵轴y坐标轴数据是收盘价这一列的数据,
同时增加了一个参数叫kind这个值表示绘制图形的类型,这里的值等于scatter表示绘制散点图。
kind取值(图形类型)参考官方文档:http://pandas.pydata.org/pandas-docs/stable/visualization.html
'''
matplotlib.rcParams['font.size'] = 12
ALbbDf.plot(x='Volume',y='Close',kind='scatter')
#x坐标轴文本
plt.xlabel('成交量')
#y坐标轴文本
plt.ylabel('股价(美元)')

#图片标题
plt.title('成交量和股价')
#显示图形
plt.show()
#绘制谷歌的画纸1
plt.figure(figsize=(3,10))

ax1=GoogleDf.plot(y='Close')

#通过指定画纸ax,在同一张画纸上绘图
#亚马逊
AmazDf.plot(ax=ax1,y='Close')
#Facebook
FBDf.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('2018年至今6家公司股价走势比较')

plt.legend()
plt.show()
'''
使用label自定义图例
'''
#绘制谷歌的画纸1
ax1=GoogleDf.plot(y='Close',label='谷歌')
#通过指定画纸ax,在同一张画纸上绘图
#亚马逊
AmazDf.plot(ax=ax1,y='Close',label='亚马逊')
#Facebook
FBDf.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('2018年至今6家公司股价走势比较')
#显示网格

plt.show()'''
第1组:谷歌,亚马逊
'''
#绘制谷歌的画纸2
ax2=GoogleDf.plot(y='Close',label='谷歌')
#通过指定画纸ax,在同一张画纸上绘图
#亚马逊
amazDf.plot(ax=ax2,y='Close',label='亚马逊')
#x坐标轴文本
plt.xlabel('时间')
#y坐标轴文本
plt.ylabel('股价(美元)')
#图片标题
plt.title('2018年谷歌和亚马逊股价走势比较')
#显示网格
plt.grid(True)
plt.show()

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

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年6月20日
下一篇 2023年6月21日

相关推荐