Я следую этому учебнику, и наткнулся на то, чего я не понимаю.
Идея состоит в том, чтобы иметь функцию, которая строит изображение.Затем эта функция вызывается в цикле, где определены подзаговоры:
минимальный пример
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
def show_image(image):
"""Show image"""
plt.imshow(image)
def show_image_wait(image):
"""show image, and wait a little bit. similar implementation than in the tutorial"""
plt.imshow(image)
plt.pause(0.001)
Теперь вызов обеих функций в цикле:
без ожидания:
for i in range(4):
image = np.random.randint(0,3, (10,10))
plt.subplot(1, 4, i+1)
show_image(image)
# expected output: 1 row, with 4 images side by side
# actual output: 1 row, with 4 images, side by side
с ожиданием, однако:
for i in range(4):
image = np.random.randint(0,3, (10,10))
plt.subplot(1, 4, i+1)
show_image_wait(image)
# expected output: 1 row, with 4 images side by side
# actual output: 4 rows, with 1 images each
Функция, подобная show_image_wait, используется в учебном руководстве, указанном выше, где все изображения отображаются в правильном положении.
Я не понимаю, почему ожидание крошечного кусочка отменяет позиционирование субплота в моем случае, а не в связанном примере.
Все это происходит в блокноте Jupyter
Помощь очень ценится!