第8章 绘图和可视化
绘图是数据分析工作中最重要的任务之一,是探索过程的一部分,例如,帮助我们找出异常值、必要的数据转换、得出有关模型的idea等。此外,还可以利用诸如d3.js(http://d3js.org/)之类的工具为Web应用构建交互式图像。Python有许多可视化工具(参见本章末尾),但是我主要讲解matplotlib(http://matplotlib.sourceforge.net)。
matplotlib是一个用于创建出版质量图表的桌面绘图包(主要是2D方面)。该项目是由John Hunter于2002年启动的,其目的是为Python构建一个MATLAB式的绘图接口。从那时起,John Hunter、Fernando Pérez(IPython的创始人)等许多人就一起合作,共同致力于将IPython和matplotlib结合起来以提供一种功能丰富且高效的科学计算环境。如果结合使用一种GUI工具包(如IPython),matplotlib还具有诸如缩放和平移等交互功能。它不仅支持各种操作系统上许多不同的GUI后端,而且还能将图片导出为各种常见的矢量(vector)和光栅(raster)图:PDF、SVG、JPG、PNG、BMP、GIF等。本书中的大部分图形都是用它生成的。
matplotlib还有许多插件工具集,如用于3D图形的mplot3d以及用于地图和投影的basemap。我将在本章末尾介绍一个利用basemap在地图上绘制数据和读取shapefiles的例子。
要使用本章中的代码示例,请确保你的IPython是以Pylab模式启动的(ipython —pylab),或通过%gui魔术命令打开了GUI事件循环集成。