我有一个循环,我想在其中创建三个子图。以下是一些删除了函数定义的代码。
n = 14
dets = []
entropies = []
N = 1000
fig = plt.figure()
# The loop.
for h in xrange(2,8,2):
for i in xrange(N):
A = (np.random.randint(2, size=(h,n)))*2-1
detA_Atranspose = np.linalg.det(np.dot(A, A.transpose()))
logdetA_Atranspose = math.log(detA_Atranspose + 1,2)
H = compute_entropy(A)
entropies.append(H)
dets.append(logdetA_Atranspose)
ax1 = fig.add_subplot(311)
ax1.plot(dets, entropies, 'ro')
plt.show()
然而,有一些我不知道该怎么做。
ax2 = fig.add_subplot(312)
ax2.plot(dets, entropies, 'ro')
并在第三次迭代中使用ax3 = fig.add_subplot(313)
ax3.plot(dets, entropies, 'ro')
来创建三个子图。我该怎么做?答案 0 :(得分:1)
您可以使用plt.subplots
并执行以下操作:
fig, ax = plt.subplots(nrows = 3, ncols = 1)
hs = [2,8,2]
for p in xrange(3):
h = hs[p]
for i in xrange(N):
# skip other code
ax[p].plot(dets, entropies, 'ro')