我试图做一个情节与次要情节7。 目前我正在密谋两列,一个有四个地块,另三个,即是这样的:
我在建设的如下因素的方式此图:
#! /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')
然而,出版,我认为这看起来有点丑 - 我想要做的是移动的最后插曲成两列之间的中心。 那么,是什么使得它为中心,以调整最后插曲的位置的最佳方式? 即,具有在3X2网格中的第一副区6和最后一个副区下方为中心的两个柱之间。 如果可能的话,我希望能够保持for
循环,这样我可以简单地使用:
if i == 6:
# do something to reposition/centre this plot
谢谢,
亚历克斯
如果你想保持for循环,可以安排与你的地块subplot2grid
,这允许colspan
参数:
#! /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
if i == 6:
ax = subplot2grid((4,8), (i/2, 2), colspan=4)
else:
# You can be fancy and use subplot2grid for each plot, which dosen't
# require keeping the iplot variable:
# ax = subplot2grid((4,2), (i/2,i%2))
# Or you can keep using add_subplot, which may be simpler:
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')
使用网格规格(DOC)与4x4的方格,并让每个情节跨度2列,例如:
import matplotlib.gridspec as gridspec
gs = gridspec.GridSpec(4, 4)
ax1 = plt.subplot(gs[0, 0:2])
ax2 = plt.subplot(gs[0,2:])
ax3 = plt.subplot(gs[1,0:2])
ax4 = plt.subplot(gs[1,2:])
ax5 = plt.subplot(gs[2,0:2])
ax6 = plt.subplot(gs[2,2:])
ax7 = plt.subplot(gs[3,1:3])
fig = gcf()
gs.tight_layout(fig)
ax_lst = [ax1,ax2,ax3,ax4,ax5,ax6,ax7]