我正在尝试绘制一个包含7个子图的图。目前我正在绘制两列,一列包含4个图,另一列包含3个图,即:
我以如下方式构建这一情节:
#! /usr/bin/env python
import numpy as plotting
import matplotlib
from pylab import *
x = np.random.rand(20)
y = np.random.rand(20)
fig = figure(figsize=(6.5,12))
subplots_adjust(wspace=0.2,hspace=0.2)
iplot = 420
for i in range(7):
iplot += 1
ax = fig.add_subplot(iplot)
ax.plot(x,y,'ko')
ax.set_xlabel("x")
ax.set_ylabel("y")
savefig("subplots_example.png",bbox_inches='tight')
然而,对于出版物来说,我认为这看起来有点难看--我想做的是将最后一个子情节移到两列之间的中心。那么,调整最后一个子情节的位置使其居中的最佳方法是什么呢?也就是说,将前6个子情节放在3X 2的网格中,将下面的最后一个子情节放在两列之间居中。如果可能的话,我希望能够保留for
循环,这样我就可以简单地用途:
if i == 6:
# do something to reposition/centre this plot
2条答案
按热度按时间mwg9r5ms1#
使用网格规格(doc)和4x4网格,并使每个图跨越2列,如下所示:
oknrviil2#
如果你想保留for循环,你可以用
subplot2grid
来安排你的绘图,它允许一个colspan
参数: