使用matplotlib的axes画图

今天看到一篇非常好的文章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()

运行之后会出现一下图形:
使用matplotlib的axes画图_第1张图片
观察一下不难发现,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()

我们同样可以得到以下的图像
使用matplotlib的axes画图_第2张图片
两种方法其实都是可以的,只不过我认为axes更加底层,更加基础。

你可能感兴趣的:(python基础知识点整理)