Код, который вы разместили, не запустился для меня.rows
и columns
не определены.Я запустил:
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
img = mpimg.imread('http://res.freestockphotos.biz/pictures/15/15912-illustration-of-a-banana-pv.png')
fig = plt.figure(figsize=(18, 4))
rows = 1 # I added this
columns = 3 # and this
for i in range(1, 4):
fig.add_subplot(rows, columns, i)
plt.imshow(img)
if i > 2:
plt.imshow(img[:img.shape[0], :int(img.shape[1] / 2)])
plt.show() # and this
С результатом:

Поэтому я не могу воспроизвести проблему (и предположить, что другие тоже не могут),Возможно, этот код решил вашу проблему, хотя?Удачи!
update
После того, как столбцы с комментариями @ImportanceOfBeingErnest должны быть равны 6, я возился с этим, и, возможно, вы ищете параметр extent
?Я запустил
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
img = mpimg.imread('http://res.freestockphotos.biz/pictures/15/15912-illustration-of-a-banana-pv.png')
fig = plt.figure(figsize=(18, 4))
rows = 1
columns = 6
for i in range(1, 4):
fig.add_subplot(rows, columns, i)
if i > 2:
plt.imshow(img[:img.shape[0], :int(img.shape[1] / 2)], extent=(0, 50, 0, 50))
else:
plt.imshow(img, extent=(0, 50, 0, 50))
plt.tight_layout()
plt.show()
Выход:

По сути, он просто растягивает изображение в соответствии с указанным диапазоном extent
,который я считаю, это просто соотношение сторон по существу.Будет ли это желаемым эффектом искажения изображения, чтобы оно соответствовало размеру других изображений?