You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.2 KiB

4.1.1:画图接口

导入matplotlib

numpy,pandas一样,在导入matplotlib时我们也可以用一些常用的简写形式:

import matplotlib as mpl
import matplotlib.pyplot as plt

pyplot是最常用的画图模块接口,功能非常强大。

显示图像

开发环境的不同,显示图像的方式也就不一样,一般有三种开发环境,分别是脚本、IPython shellIPython Notebook

在脚本中使用matplotlib进行可视化时显示图像可以使用plt.show()

IPython shell中使用matplotlib可视化非常方便,使用%matplotlib命令启动matplotlib模式。之后的任何plt命令都会自动打开一个图像窗口,当有新的命令,图像就会更新。但对已经画好的图像不会自动实时更新。对于这种可以使用plt.draw()强制更新。

IPython Notebook中画图和IPthon shell类似,也需要使用%matplotlib命令。图像的显示是嵌在IPython Notebook页面中。有两种展示形式:%matplotlib notebook交互式图形;%matplotlib inline静态图形。

matplotlib还可以直接将图像保存文件,通过plt.savefig("test.jpg")命令保存文件。

plt.savefig("test.jpg")

画图接口

matplotlib有两个画图接口:一个是便捷的matlab风格接口,另一个是功能更强大的面向对象接口。 matplotlibmatlab接口许多语法都和MATLAB类似,所以使用过MATLAB的朋友们想必很快就能上手matplotlib

import matplotlib.pyplot as plt#导入模块

plt.figure(figsize=(10,10))#创建图形,并设置大小为10 x 10

plt.subplot(2,1,1)#创建子图1子图编号

plt.plot([1,2,3,4], [1,2,3,4])

plt.subplot(2,1,2)#创建子图2子图编号

plt.plot([4,3,2,1], [1,2,3,4])

plt.show()

面向对象接口可以适应更加复杂的场景,更好地控制图形,在画比较复杂的图形市,面向对象方法会更方便。通过下面的代码,可以用面向对象接口重新创建之前的图形。

fig,ax=plt.subplots(2)#ax是一个包含2个axes对象的数组

ax[0].plot([1,2,3,4], [1,2,3,4])

ax[1].plot([4,3,2,1], [1,2,3,4])

plt.show()