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的主要资源参考: