今天看到一篇非常好的文章Matlab绘图原理详解,其中介绍了axes的本质,我也动手实践了一下,基本上理解了axes的使用方法。其实用一句话总结就是:
axes是指定的绘图区域
我们来看以下代码:
from matplotlib import pyplot as plt
x = [1,2,3,4,5]
y = [1,2,4,3,5]
fig,axes = plt.subplots(1,3,figsize=(16,6))
ax1,ax2,ax3 = axes[0],axes[1],axes[2]
ax1.plot(x,y)
ax2.scatter(x,y)
ax3.barh(x,y)
plt.show()
运行之后会出现一下图形:
观察一下不难发现,plt.subplots函数返回了一个二维的元组,第一个元素fig表示画布,第二个元素axes表示新建了3个subplots的子作图区域,然后我们可以用ax1,ax2,ax3来表示这三个区域,并且精准的控制这三个区域中需要画的图形元素。
在很多代码中,我们看不到axes,这是因为plot等函数把他们封装起来了,在底层隐式地调用,这样的调用更加抽象、透明,比如:
from matplotlib import pyplot as plt
x = [1,2,3,4,5]
y = [1,2,4,3,5]
plt.subplot(1,3,1)
plt.plot(x,y)
plt.subplot(1,3,2)
plt.scatter(x,y)
plt.subplot(1,3,3)
plt.barh(x,y)
plt.show()