发表自话题:股票柱状图颜色详解图
案例:
6家公司股票:谷歌、亚马逊、Facebook、苹果、阿里巴巴、腾讯;数据来源:从雅虎数据源或Morningstar数据源获取阿里巴巴数据获取股票数据;绘制6家公司股价图、平均股价图等;步骤如下:
1、先使用conda安装:
1)先在conda中进入你notebook使用的python环境,例如你在notebook中使用的环境名称是py3, 那么conda命令就是:activate py3;
2)在你需要的python环境下安装数据分析pandas包,和互联数据获取包pandas-datareader;
互联数据获取包注意:安装包的命令中的连接符是‘-’也就是pandas-datareader。 但是导入包的连接符是下划线‘_’,也就是pandas-datareader 这里一定要注意安装和导入包这两个连接符是不一样的,不然无法导入使用。
接下来获取6家公司从到之间的股票数据。
一、获取数据
获取股票数据分方法:
方法1:从雅虎数据源获取股票数据,函数为get_data_yahoo,官网使用操作文档: http://pandas-datareader.readthedocs.io/en/latest/remote_data.html;方法2:从Morningstar数据源获取数据。本文案例主要从雅虎数据源获取股票数据。获取数据过程存在问题时的解决方案:
1)由于是从国外获取股票数据,会由于网络不稳定,获取数据失败,多运行几次这个cell就好了 ;2)如果多运行几次还是无法获的股票数据,使用这个链接里的方法:https://pypi.org/project/fix-yahoo-finance/0.0.21/ 3)如果经过上面2个方法还不行,打开这个官网使用文档(http://pandas-datareader.readthedocs.io/en/latest/remote_data.html), 换其他的财经数据源试试。每日股票价位信息:
Open:开盘价 High:最高加Low:最低价 Close:收盘价 Volume:成交量(一)折线图:绘制股票走势
横轴x是股票时间,babaDf.index是Pandas二维数据Dataframe的行索引,这里是时间序列;纵轴y是收盘价Close这一列数据 plot默认是线条图绘图时遇到横坐标没有显示出来的原因:
先查看你的数据框索引是不是日期类型的,如果不是,将数据框索引转换成日期类型的 ;如果获取数据来源,前面换成了数据源(morningstar),后面绘图的时候需要重置索引。解决方案:重置索引
重置索引代码如下:
babaDf.reset_index(inplace=True) babaDf.set_index('Date',inplace=True)查看索引是否重置成功
babaDf.head()1、重置索引
#阿里巴巴重置索引 babaDf.reset_index(inplace=True) babaDf.set_index('Date',inplace=True) #重置索引后 babaDf['Date']=babaDf.index babaDf.plot(x='Date',y='Close') #x坐标轴文本 plt.xlabel('time') #y坐标轴文本 plt.ylabel('price(dollar)') #图片标题 plt.title('Alibabas stock moves in 2017') #显示网格 plt.grid(True) #显示图形 plt.show()(二)散点图:成交量和股价
babaDf.plot(x='Volume',y='Close',kind='scatter')
plt.xlabel('Volume')#x坐标轴文本
plt.ylabel('price(dollar)')#y坐标轴文本
plt.title('Volume and price')#图片标题
plt.grid(True)#显示网格
plt.show()#显示图形
得到相关系数矩阵
#得到相关系数矩阵 babaDf.corr()接下来将6家公司股价绘制在一张图中。
(三)GAFATA股价走势比较
1、重置索引
#重置谷歌索引 googDf.reset_index(inplace=True) googDf.set_index('Date',inplace=True) #查看索引是否重置成功 googDf.head()图略。
#重置亚马逊索引 amazDf.reset_index(inplace=True) amazDf.set_index('Date',inplace=True) #查看索引是否重置成功 amazDf.head()图略。
#重置苹果索引 fbDf.reset_index(inplace=True) fbDf.set_index('Date',inplace=True) #查看索引是否重置成功 fbDf.head()图略。
#重置腾讯索引 txDf.reset_index(inplace=True) txDf.set_index('Date',inplace=True) #查看索引是否重置成功 txDf.head()图略。
2、绘图
#绘制谷歌的画纸1 googDf['Date']=googDf.index ax1=googDf.plot(x='Date',y='Close',label='goog') #通过指定画纸ax,在同一张画纸上绘图 #亚马逊 amazDf['Date']=amazDf.index amazDf.plot(ax=ax1,x='Date',y='Close',label='amaz') #Facebook fbDf['Date']=fbDf.index fbDf.plot(ax=ax1,x='Date',y='Close',label='Facebook') #苹果 applDf['Date']=applDf.index applDf.plot(ax=ax1,x='Date',y='Close',label='appl') #阿里巴巴 babaDf['Date']=babaDf.index babaDf.plot(ax=ax1,x='Date',y='Close',label='baba') #腾讯 txDf['Date']=txDf.index txDf.plot(ax=ax1,x='Date',y='Close_dollar',label='tx') #x坐标轴文本 plt.xlabel('time') #y坐标轴文本 plt.ylabel('price(dollar)') #图片标题 plt.title('GAFATA stock is up a bit more in 2018') #显示网格 plt.grid(True) plt.show()(四)柱状图:六家公司股票的平均值
#6家公司股票收盘价平均值 gafataMeanList=[googDf['Close'].mean(),#谷歌 amazDf['Close'].mean(),#亚马逊 fbDf['Close'].mean(),#Facebook applDf['Close'].mean(),#苹果 babaDf['Close'].mean(),#阿里巴巴 txDf['Close_dollar'].mean()#腾讯 ] #创建pandas一维数组Series gafataMeanSer=pd.Series(gafataMeanList, index=['谷歌', '亚马逊', 'Facebook', '苹果', '阿里巴巴', '腾讯']) gafataMeanSer.plot(kind='bar',label='GAFATA') #图片标题 plt.title('2017 average GAFATA stock price') #x坐标轴文本 plt.xlabel('The name of the company') #y坐标轴文本 plt.ylabel('Average share price (dollar)') plt.grid(True) plt.show()分析结果:可以看出,仅从股票价格上来判断,亚马逊和谷歌的股票价格要远远的超过了其他四家。但是这里只是算的平均值,下面我们看下用四分位数绘制的箱线图。
(五)箱线图:6家公司股票股价的四分位数
#存放6家公司的收盘价 closeDf=pd.DataFrame() #合并6家公司的收盘价 closeDf=pd.concat([closeDf,googDf['Close'],#谷歌 amazDf['Close'],#亚马逊 fbDf['Close'],#Facebook applDf['Close'],#苹果 babaDf['Close'],#阿里巴巴 txDf['Close_dollar']#腾讯 ],axis=1) #重命名列名为公司名称 closeDf.columns=['goog','amaz','Facebook','Facebook','baba','txDf'] closeDf.head()附注:
标签组:[股票] [大数据] [阿里巴巴] [谷歌股价] [数据可视化] [苹果股价] [文本分析] [腾讯股价] [date] [date函数] [pandas] [坐标轴]
2021-08-30
2021-08-30
2021-08-31
股票技术分析:MACD指标的DEA线和股价顶背离是什么意思?
2021-08-19
2021-08-19
2021-08-23
2021-08-25
2021-08-25
从0到1,10小时让你成为股票技术分析高手(二):K线组合2
2021-08-11
从0到1,10小时让你成为股票技术分析高手(二):K线组合1
2021-08-11