信息可视化是数据分析的一块重要内容。这是一个探索性的过程。比如说,可以帮助我们坚定离群值,或者必要的数据转换,又或者是构建一个理想的模型。对于其他的一些领域,也可以进行web可视化。Python有许多的扩展库可以进行静态或者动态的可视化,但是在这一章里,书的作者只focus on在matplotlib以及建立在之上的库。
matplotlib是一个桌面绘图包,用于绘制(主要是二维的)发表用的图。该项目由John Hunter在2002年启动,目的是在Python中使用类似matlab的绘图界面。matplotlib和IPython协作简化了IPython shell(现在是Jupyter笔记本)中的交互式绘图。matplotlib支持所有操作系统上的各种GUI后端,此外还可以导出可视化到所有常见的格式中(PDF、SVG、JPG、PNG、BMP、GIF等)。
在Jupyter notebook里使用matlpotlib的方法很简单(关于如何使用jupyter notebook的网页版请见我之前的文章:ipython的初步了解):
%matplotlib notebook
第一节 Matplotlib的初步了解
在Jupyter notebook输入%matplotlib notebook,或者在ipython里输入%matplotlib后,可以调用matplotlib:
In [3]: import matplotlib.pyplot as plt
先来画一个最最最简单的直线吧:
In [4]: import numpy as np
In [5]: data = np.arange(10)
In [6]: data
Out[6]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
In [7]: plt.plot(data)
(一)Figures and Subplots
在matlibplot里,plots属于Figure对象。你可以使用plt.figure函数创建一个新的图:
In [8]: fig = plt.figure()
在ipython里,上面的代码会显示出一张空白的图。你可以使用add_subplot函数来增加图形:
In [9]: ax1 = fig.add_subplot(2, 2, 1)
这行代码的意思是:我们要绘制2行2列,一共4张图,而后面的1代表我们现在选中的是第一个图。那么运行这行代码,刚才上面一片空白的图会变成下面这样:
然后继续添加图形:
In [10]: ax2 = fig.add_subplot(2, 2, 2)
ax3 = fig.add_subplot(2, 2, 3)
这里需要强调的是:jupyter notebook里的matplotlib的图形绘制在每一个cell里会被重置,也就是说,你如果要绘制很复杂的图形,最好把所有的代码都放在同一个cell里
举个例子,上面的创建图形的代码可以写在同一个cell里: