数据可视化大数据时代的Python金融应用概述本讲主要介绍Python的matplotlib库提供的基本绘图功能。虽然还有很多其他绘图方面的库,matplotlib是最基础的,并且在很多情况下,这是一种稳定和可靠的可视化工具。无论是标准的绘图还是复杂绘图和个性化,matplotlib都提供了灵活的工具。另外,它与NumPy及其数据结构也是结合在一起的。本讲主要讨论以下两个话题:◦2D绘图:最简单的图形是二维的或者是不同的子图,我们会讨论金融中常见的图形,比如蜡烛图等。◦3D绘图:提供了金融中一系列常用的3D图形绘制方法。本讲对于Python的matplotlib库提供的绘图功能的介绍并不是面面俱到的,但是提供了最基础和金融中最常用的一些例子。其他的例子我们在后面的章节中也会介绍,比如第五讲中关于pandas库如何可视化时间序列的数据等。2D绘图-一维数据集在下面的介绍中,我们将对存储在NumPy.ndarray对象中的数据进行绘图。但是,matplotlib当然可以对存储在其他Python数据类型中的格式进行绘图,比如List对象。首先,我们需要准备绘图数据,我们来生成20个标准正态分布的伪随机数。最基本的,但是并不是非常强大的一个绘图函数是pyplot子库中的plot函数,原则上说,它需要两组数据:◦x值:一个列表包含X轴的数据◦y值:一个列表包含Y轴的数据x值和y值的数量必须匹配。如果在函数中只提供y值,plot函数会取对应的索引值作为x。因为大多数的ndarray方法返回的仍然是ndarray对象,因此可以将这个对象传递给另一个方法。例如绘制累计求和数据的图。通常情况下,默认的绘图功能对于报告等正式应用都是没有很好支撑的,例如需要改变字体,需要改变数据X轴标志等等。因此,matplotlib提供了一系列的图形格式调整函数。可以通过plt.xlim和plt.ylim函数来直接设定坐标轴的最小值。为了可读性,图形可能需要添加标题和坐标轴标志,使用plt.title,plt.xlabel和plt.ylabel函数。除了画线以外,plot函数还可以画点。颜色缩写与格式化符号可以配合使用。2D绘图——二维数据集2D绘图——二维数据集很多时候不同的数据集可能使用着不同的单位,这样使用单一的y轴可能产生视觉上的偏差。有两种方法可以用于解决这个问题:◦使用两个Y轴(分别在左/右)◦使用两个子图(上/下或左/右)首先我们引入两个Y轴绘图,使用plt.subplots函数,我们可以直接获得绘图的对象,这允许我们使得第二个图与第一个图共享x轴。绘制子图:plt.subplot使用三个数(numrows,numcols和fignum)来确定每一个子图的位置,子图的位置因此就是从1开始到numrows*numcols。这个方法还支持对不同的子图使用不同的绘图格式与方法。2D绘图——二维数据集很多时候不同的数据集可能使用着不同的单位,这样使用单一的y轴可能产生视觉上的偏差。有两种方法可以用于解决这个问题:◦使用两个Y轴(分别在左/右)◦使用两个子图(上/下或左/右)首先我们引入两个Y轴绘图,使用plt.subplots函数,我们可以直接获得绘图的对象,这允许我们使得第二个图与第一个图共享x轴。绘制子图:plt.subplot使用三个数(numrows,numcols和fignum)来确定每一个子图的位置,子图的位置因此就是从1开始到numrows*numcols。这个方法还支持对不同的子图使用不同的绘图格式与方法。其他的plot格式当考虑二维绘图的时候,线图和点图可能是最为重要的金融中的绘图类型,因为大量的数据集都包含时间序列数据,这通常可以用这些图形来表示。第5讲中将详细的讨论金融时间序列,但是目前我们来研究一些其他的二维数据集的绘图方法,特别是对那些金融中有用的可视化方法。第一个是散点图,可以使用plot,也可以使用matplotlib提供的专业函数来进行,scatter函数还提供了一些增加的功能,例如可以加入第三维,使用带色彩的bar来通过不同的颜色表达数据。第二个常用的是histogram,通常用于描述金融的收益序列。第三个常用的是boxplot。介绍plt.setp函数,可以设置(一组)图形对象实例的属性作为二维绘图的结束,我们来考虑一个数学上很有用的图,可以由matplotlib来实现,我们来做一个函数,然后显示函数下方在某个下限和上限...