Я пытаюсь получить следующее, что должно быть показано на рисунке ниже.
Предположим, для простоты у меня есть массив numpy (10x10), который я хочу построить с помощью matplotlib imshow. Условие состоит в том, чтобы иметь разные размеры пикселей, например: первые пять строк должны иметь размер 0,5 см, последние пять строк должны иметь размер 1 см. Столбцы должны иметь одинаковый размер.
Как я могу легко реализовать это? Я уже пытался это сделать, но мне это решение не нравится; в частности, у меня все еще есть белые рамки, а масштабирование ужасно.
from matplotlib import pyplot as pl
import numpy as np
data = np.arange((100))
data = np.reshape(data, (10,10))
figure, (ax1, ax2) = pl.subplots(2, 1, sharex='col')
figure.subplots_adjust(hspace=0)
data1=data[5:10,:]
ax1.imshow(data1, origin="lower", interpolation="none", aspect=0.5, extent=[-0.5,10.5,5.5,10.5], vmax=np.amax(data), vmin=np.amin(data))
ax1.set_ylim([5.5,10.5])
##
data2=data[0:5,:]
ax2.imshow(data2, origin="lower", interpolation="none", aspect=1, extent=[-0.5,10.5,-0.5,5.5], vmax=np.amax(data), vmin=np.amin(data))
ax2.set_ylim([-0.5,5.5])
pl.show()