
上QQ阅读APP看书,第一时间看更新
1.3.3 绘图与可视化
matplotlib是Python最著名的绘图库,它提供了一整套和MATLAB类似的绘图函数集,十分适合编写短小的脚本程序进行快速绘图。此外,matplotlib采用面向对象的技术来实现,因此组成图表的各个元素都是对象,在编写较大的应用程序时通过面向对象的方式使用matplotlib将更加有效。
下面的程序绘制隐函数(x2 +y2 -1)3 -x2 y3 =0的曲线,结果如图1-11所示。

图1-11 matplotlib绘制心形隐函数曲线
x, y = np.mgrid[-2:2:500j, -2:2:500j] z = (x**2 + y**2 - 1)**3 - x**2 * y**3 pl.contourf(x, y, z, levels=[-1, 0], colors=["red"]) pl.gca().set_aspect("equal")
VTK是一套功能十分强大的三维数据可视化库,TVTK库在标准的VTK库之上用Traits库进行封装。而Mayavi2则在TVTK的基础上添加了一套面向应用的方便工具,它既可以单独作为3D可视化程序使用,也可以很方便地嵌入到TraitsUI编写的界面程序中。在下面的例子中,使用Mayavi绘制如下隐函数的曲面,结果如图1-12所示。

%%mlab_plot from mayavi import mlab x, y, z = np.mgrid[-3:3:100j, -1:1:100j, -3:3:100j] f = (x**2 + 9.0/4*y**2 + z**2 - 1)**3 - x**2 * z**3 - 9.0/80 * y**2 * z**3 contour = mlab.contour3d(x, y, z, f, contours=[0], color=(1, 0, 0))