上一期将同一类数据汇总到了一个文件中,并保存到了本地。这一期,我们继续以上证50股票的成交价数据为例,分析股票间的相关性,并将其以可视化的形式展现出来。
前言
在这个系列中,我们将共同学习如何借助Python这个强大的工具处理金融数据。在正式开始这个系列的学习之前,需要您具有Python编程的基础知识,至少需要将Python安装好。如果暂时还不满足这一要求的,建议先关注公众号 IT信息教室,学习 Python入门教程。
内容首发于微信公众号IT信息教室,如果您想学习更多AI相关的技能,欢迎搜索关注或微信扫描下方二维码关注~~
绘制相关性表格
在这一期的内容中要绘制可视化的图形,需要使用 matplotlib 这个工具包.
首先导入工具包并设置图表的风格:
import matplotlib.pyplot as plt
from matplotlib import style
# 设置图表风格
style.use('ggplot')
接下来,使用函数 visualizeData 来实现本期的功能:
def visualizeData():
我们使用上一期汇总好的复权成交价的数据,首先读取本地数据文档:
dataFrame = pd.read_csv('SS50JoinedClose.csv')
这时,我们已经可以绘制任意股票复权成交价曲线,例如,绘制 ‘600104.SS’ 这只股票:
dataFrame['600104.SS'].plot()
plt.show()
调用并运行这个函数后,就可以观察到类似下图这样的走势图:
不过这个走势图不是我们这一期要关注的,这一期我们的任务是绘制相关性图表。
在 Pandas 中有可以直接调用的获取相关性表格的方法 corr()。
例如,希望获取 dataFrame 对应的相关性数据,只需要:
dataFrameCorr = dataFrame.corr()
然后我们使用 print 输出前几行观察一下:
print(dataFrameCorr.head())
输出的内容如下:
600036.SS 601229.SS 600031.SS 601166.SS ... 600000.SS 601328.SS 601939.SS 600340.SS
600036.SS 1.000000 -0.155727 0.516900 0.896172 ... 0.763529 0.763135 0.944877 0.771134
601229.SS -0.155727 1.000000 -0.066185 0.244406 ... 0.503282 0.036439 -0.296631 0.054638
600031.SS 0.516900 -0.066185 1.000000 0.248895 ... 0.041619 0.118011 0.325628 0.013470
601166.SS 0.896172 0.244406 0.248895 1.000000 ... 0.943753 0.890189 0.940535 0.932636
600104.SS 0.818535 -0.275266 0.140796 0.871803 ... 0.847518 0.844942 0.926855 0.883369
这里获得的相关性表格输出的是一个 50x50 的 dataFrame 格式的数据,数值越接近 1,则表示正相关性越大,数值越接近 -1,则表示负相关性越大,数值越接近 0,则表示相关性越小。
对角线处的数值都是 1,因为一支股票和它自身一定是正