【Python量化投资】金融应用中用matplotlib库实现的数据可视化

Python中,matplotlib可以视为数据可视化的基准和主力。尽管有许多其他的可视化库,但是matplotlib已经确立了一个标杆,在许多情况下,它都是健壮、可靠的可视化工具。在标准的绘图工作中很容易理解,对更复杂的绘图和自定义又很灵活。此外,它与NumPy及其提供的数据结构紧密集成。下面就列举几个用二维数据集说明对金融应用程序中的可视化方法。

首先要先导入NumPy和matplotlib这两个库,主要的绘图函数在子库matplotlib.pyplot中:

散点图

要介绍的第一种图表是散点图,这种图表中一个数据集的值作为其他数据集的x值。例如,这种图标类型可用于绘制一个金融时间序列的收益和另一个时间序列收益的对比。下面例子中,将使用二维数据集和其他一些数据。

直方图

另一种图表类型直方图也常常用于金融收益中。它是金融应用中的重要图表类型。主要应用plt.hist这个函数。下面显示的是两个数据集的数据在直方图中堆叠。

箱形图

另一种实用图表类型是箱形图。和直方图类似,它可以简洁概述数据集的特性,很容易比较多个数据集。通过下面的例子我们绘制出了这类图表。

特殊金融图表

matplotlib还提供了少数精选的特殊金融图表。这些图表(如柱状图)主要用于可视化历史股价数据或者类似的金融时间序列数据,可以在matplotlib.finance子库中找到:

作为一个方便的函数,且该子库可以简单地从雅虎财经网站(http://finance.yahoo.com)读取历史股价数据。只需要起始和结束日期,以及对应的股票代码。下面以读取德国DAX指数数据为例,其股票代码为^GDAXI:

这里quotes包含了DAX指数的时间序列数据,包括日期、开盘价、最高价、最低价、收盘价和成交量:

matplotlib.finance的绘制函数能准确理解可能传递的格式和数据集,这里每日的正收益由蓝色的矩形表示,负收益由红色矩形表示。而且matplotlib会根据数据集中的日期信息,为x轴正确设置标签:

3D图形应用

最后一个是在金融中的3D图形应用。金融中从3维可视化中获益的领域不是太大。但是,波动率平面是一个应用领域,它可以同时展示许多到期日和行权价的隐含波动率。下面例子中,我们人为生产一个类似波动率平面的图表。

为此,考虑如下因素:1.行权价格在50-150元之间。2.到期日在0.5-2.5年之间。

这提供了一个2维坐标系。我们可以使用NumPy的meshgrid函数,根据两个1维ndarray对象生成这样的坐标系:

上述代码将两个1维数组转换为2维数组,在必要时重复原始坐标轴值:strike[:2]

根据新的ndarray对象,我们通过简单的比例调整二次函数生成模拟的隐含波动率:

通过下面代码即可得出图表:

上面便是matplotlib在大部分金融环境下的一些基本绘图函数应用。作为python数据可视化的主力,它是一个相当强大的库,具有复杂的API。如需扩展学习可参考下面的资源:

关于matplotlib的主要资源参考:

matplotlib主页:http://matplotlib.org

一个包含有许多实例示例的网站:http://matplotlib.org/gallery.html

一个还不错的2D绘图教程:http://matplotlib.org/users/pyplot_tutorial.html

一个还不错的3D绘图教程:http://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html

原文发布于微信公众号 - 量化投资与机器学习(ZXL_LHTZ_JQXX)

原文发表时间:2016-08-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能

通过JS库Encog实现JavaScript机器学习和神经学网络

在本文中,你会对如何使用 JavaScript 实现机器学习这个话题有一些基本的了解。

1.6K10
来自专栏AI研习社

从原理到实战 英伟达教你用PyTorch搭建RNN(下)

编者按:本文为《从原理到实战 英伟达教你用PyTorch搭建RNN》的下篇,阅读上篇请点击这里。文章原载于英伟达博客,AI 研习社编译。 ? 代码实操 在开...

4264
来自专栏机器之心

资源 | 让手机神经网络速度翻倍:Facebook开源高性能内核库QNNPACK

为了将最新的计算机视觉模型部署到移动设备中,Facebook 开发了一个用于低密度卷积的优化函数库——QNNPACK,用在最佳神经网络中。

1454
来自专栏AI科技大本营的专栏

AI实践精选:艺术家如何应用RNN(循环神经网络)创作AI化的艺术作品

文章导读:这篇文章不是为了全面深入的介绍循环神经网络(recurrent neural networks),而是为那些没有任何机器学习(machine lear...

3607
来自专栏Python中文社区

Kaggle搭积木式刷分大法: LB 0.11666(排名前15%)

專 欄 ❈本文作者:王勇,目前感兴趣项目商业分析、Python、机器学习、Kaggle。17年项目管理,通信业干了11年项目经理管合同交付,制造业干了6年项目...

21310
来自专栏LhWorld哥陪你聊算法

【深度学习篇】--Seq2Seq模型从初识到应用

“高分辨率”聚焦在图片的某个特定区域并以“低分辨率”,感知图像的周边区域的模式。通过大量实验证明,将attention机制应用在机器翻译,摘要生成,阅读理解等问...

1314
来自专栏CreateAMind

deepmind 做通用人工智能的思路

Automated discovery of early visual concepts from raw image data is a major open...

1302
来自专栏程序员宝库

使用 JavaScript 实现机器学习和神经学网络

英文:JeffHeaton 译文: 云+社区/白加黑大人 https://cloud.tencent.com/developer/article/103589...

39010
来自专栏数据派THU

独家 | 一文读懂TensorFlow(附代码、学习资料)

人工智能、机器学习和深度学习 在介绍TensorFlow(以下简称为TF)之前,我们首先了解一下相关背景。 TF是一种机器学习框架,而机器学习经常和人工智能,...

39410
来自专栏新智元

Facebook开源PyTorch版本fairseq翻译模型,训练速度提高50%

【新智元导读】FAIR的开源序列到序列(sequence-to-sequence)引擎现在可以在PyTorch使用了。FAIR今天发布了fairseq-py,这...

49511

扫码关注云+社区

领取腾讯云代金券