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

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

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

先使用conda安装:

1)python3环境

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

 实现步骤

1:导入模块

2:获取数据

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

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

数据说明

列名    High   Low    Open   Close  Volume

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

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

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

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

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

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

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

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

首先查看数据集情况

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

查看数据集统计信息 

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

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

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

数据可视化 

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

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

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

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

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

接着计算相关系数矩阵

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

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

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

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

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

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

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

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

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

代码

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

#导入包
#数据分析包
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()

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

你可能感兴趣的:(数据分析与可视化,python,数据分析,信息可视化,阿里巴巴,matplotlib)