本文只是因为自己一开始使用这个函数的时候感觉很懵,所以自己尝试了很多,最终完全搞明白了,如果你对一些图形的放置还有大小不是很明白的话,这篇文章应该可以帮助得到你。
好多篇文章都选用了这个例子,当然我自己也是学的这个例子:
fig = plt.figure()
gs = fig.add_gridspec(3,3)
ax1 = fig.add_subplot(gs[0,0:3])
ax1.set_title("[0,0:3]")
ax2 = fig.add_subplot(gs[1,0:2])
ax2.set_title("[1,0:2]")
ax3 = fig.add_subplot(gs[1:3,2])
ax3.set_title("[1:3,2]")
ax4 = fig.add_subplot(gs[2,0])
ax4.set_title("[2,0]")
ax5 = fig.add_subplot(gs[2,1])
ax5.set_title("[2,1]")
plt.tight_layout()
对,和张图片就是大伙都在用的,有些不同的地方,就是gridspec那里的参数(3,3)可以理解为画了个二维平面,从 y=0到y=3,以及从x=0到x=3的正方形,然后分成了九个小块,但是每个小块确是按照数组里面的从0开始去选取。
接下来通过观察可以发现(当然你要是发现不了,直接看我的结论就可以了!),【a,b】这样一个参数里面,a表示的是第几行,b表示的是第几列。
好了再来看第一个图形,他的a是正常的数字,所以他就是在第0行的位置上,但是呢第二个是一个:的形式的数据,(这部分就是我观察得到的结论了)还记得我之前给你们说的那个9个小格的xy图?这里表示的就是在列这块内容,从x=0取到x=3,所以这里刚好可以占满三个小个,类似的可以看第二行的第一个图形做做对比。其他的就是以此作为依据推演一下就行。
最后我再放一个将图形颠倒过来的代码和结果给大伙,方便加深一下理解。
fig = plt.figure()
gs = fig.add_gridspec(3,3)
ax4 = fig.add_subplot(gs[0,2])
ax4.set_title("[0,2]")
ax5 = fig.add_subplot(gs[0,1])
ax5.set_title("[0,1]")
ax3 = fig.add_subplot(gs[0:2,0])
ax3.set_title("[0:2,0]")
ax2 = fig.add_subplot(gs[1,1:3])
ax2.set_title("[1,1:3]")
ax1 = fig.add_subplot(gs[2,0:3])
ax1.set_title("[2,0:3]")
plt.tight_layout()
完结撒花!!!希望对你有帮助!!