Сначала вы создавали две отдельные фигуры, вызывая plt.figure()
, а затем plt.subplots()
(эта последняя функция создает и фигуру, и массив осей)
Затем вам нужно выполнить итерацию по вашим осям, и нанесите на каждую из этих осей вместо очистки фигуры на каждом l oop (что вы и делали, используя plt.clf()
)
Вы можете использовать функции plt.XXXX()
, но они работают только на «текущих» осях, поэтому вы должны менять текущие оси на каждой итерации. В противном случае вам лучше использовать функции Axes.set_XXXX()
, как в другом ответе @yatu. См. здесь для получения дополнительной информации . fig, ax_lst = plt.subplots (2, 4, figsize = (12,8)) # фигура с сеткой осей 2x4
letters = "ABCDEFGH"
for character,ax in zip(letters, ax_lst.flat):
x = np.random.randn(4096)
y = np.random.randn(4096)
heatmap, xedges, yedges = np.histogram2d(x, y, bins=(64,64))
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]
# Plot heatmap
plt.sca(ax) # make the ax object the "current axes"
plt.title(character)
plt.ylabel('y')
plt.xlabel('x')
plt.imshow(heatmap, extent=extent)
plt.colorbar()
plt.show()