Python绘制两个子图

时间:2017-06-20 09:44:43

标签: python matplotlib plot

我有一组12个情节,我想保存为一个。第一组是9个细分的3x3子图,第二个是4个细分的2x2子图。 我试图在这两个之间添加一个子图(121),我试图使用图(1)和图(2),但两个都没有遇到我,将两个图像保存为一个大图像。这样做有简单的方法吗?

plt.subplot(331)
plt.imshow(getpoly(seg1),origin="lower")
plt.subplot(332)
plt.imshow(getpoly(seg2),origin="lower")
plt.subplot(333)
plt.imshow(getpoly(seg3),origin="lower")
plt.subplot(334)
plt.imshow(getpoly(seg4),origin="lower")
plt.subplot(335)
plt.imshow(getpoly(seg5),origin="lower")
plt.subplot(336)
plt.imshow(getpoly(seg6),origin="lower")
plt.subplot(337)
plt.imshow(getpoly(seg7),origin="lower")
plt.subplot(338)
plt.imshow(getpoly(seg8),origin="lower")
plt.subplot(339)
plt.imshow(getpoly(seg9),origin="lower")


plt.subplot(221)
plt.imshow(h1,origin="lower")
plt.colorbar()
plt.subplot(222)
plt.imshow(h2,origin="lower")
plt.colorbar()
plt.subplot(223)
plt.imshow(getpoly(h2),origin="lower")
plt.colorbar()  
plt.subplot(224)
plt.imshow(h1-getpoly(h2),origin="lower")
plt.colorbar()

1 个答案:

答案 0 :(得分:2)

如果显示here,您可能希望将gridspecGridSpecFromSubplotSpec一起使用。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec

gs = gridspec.GridSpec(1, 2)
gs0 = gridspec.GridSpecFromSubplotSpec(3, 3, subplot_spec=gs[0])
gs1 = gridspec.GridSpecFromSubplotSpec(2, 2, subplot_spec=gs[1])

fig = plt.figure()

for i in range(9):
    ax = fig.add_subplot(gs0[i//3, i%3])
    ax.imshow(np.random.rand(4,4))
    ax.set_xticks([]); ax.set_yticks([])

for i in range(4):
    ax = fig.add_subplot(gs1[i//2, i%2])
    ax.imshow(np.random.rand(4,4))
    ax.set_xticks([]); ax.set_yticks([])

plt.show()

enter image description here