本文最后更新于 320 天前,其中的信息可能已经过时,如有错误请发送邮件到wuxianglongblog@163.com
基于对象的可视化操作
相对于基于函数的可视化操作,Matplotlib提供了更灵活的方式进行可视化操作——基于对象的方法进行操作。
事实上,对Matplotlib来说,每张图都是一个Figure对象,可以通过plt.figure()
函数产生。Figure对象可以通过.add_axes()
方法向图中添加Axes对象。Axes对象可以进行绘图操作,调用它的.plot()
方法相当于调用plt.plot()
函数。
例如:
from matplotlib import pyplot as plt
import numpy as np
x = np.linspace(0, 5, 10)
y = x ** 2
fig = plt.figure()
axes = fig.add_axes([0.1, 0.1, 0.8, 0.8])
axes.plot(x, y, 'r')
plt.show()
绘制多张子图时,可以直接使用plt.subplots()
函数来同时得到Figure对象和子图对应Axes对象数组:
import numpy as np
from matplotlib import pyplot as plt
def f(t):
return np.exp(-t) * np.cos(2*np.pi*t)
t1 = np.arange(0.0, 5.0, 0.1)
t2 = np.arange(0.0, 5.0, 0.02)
fig, axes = plt.subplots(2, 1)
axes[0].plot(t1, f(t1), 'bo', t2, f(t2), 'k')
axes[1].plot(t2, np.cos(2*np.pi*t2), 'r--')
plt.show()
也可以调用两次.add_axes()方法:
from matplotlib import pyplot as plt
import numpy as np
def f(t):
return np.exp(-t) * np.cos(2*np.pi*t)
t1 = np.arange(0.0, 5.0, 0.1)
t2 = np.arange(0.0, 5.0, 0.02)
fig = plt.figure()
# 参数含义:左下角横坐标,纵坐标,横轴长度,纵轴长度
axes = fig.add_axes([0.1, 0.5, 0.8, 0.3])
axes.plot(t1, f(t1), 'bo', t2, f(t2), 'k')
# 参数含义:左下角横坐标,纵坐标,横轴长度,纵轴长度
axes = fig.add_axes([0.1, 0.1, 0.8, 0.3])
axes.plot(t2, np.cos(2*np.pi*t2), 'r--')
plt.show()