В следующем фрагменте кодамасштабирования изображения, генерируемые imshow
import matplotlib.pyplot as plt
import numpy as np
arr1 = np.arange(100).reshape((10,10))
arr2 = np.arange(25).reshape((5,5))
fig, (ax1, ax2,) = plt.subplots(nrows=2, figsize=(3,5))
ax1.imshow(arr1, interpolation="none")
ax2.imshow(arr2, interpolation="none")
plt.tight_layout()
plt.show()
производит два изображения с того же размера, но гораздо меньшую «плотность пикселей» во втором.
Я хотел бы иметь второе изображение графический в том же масштабе (т.е. плотности пикселей) первый, без заполнения подфигуров, возможно, правильно выровнены (т.е. происхождение образа в том же подзаговоре положение, как и первый.)
Редактировать
формы arr1
и arr2
являются лишь примером, чтобы показать проблему. То, что я ищу, - это способ обеспечить, чтобы два разных изображения, генерируемые imshow
в разных частях рисунка, были сделаны в точно таком же масштабе.
насчет просто интерполирования ваши 2d-матрицы перед построением графика? Должно быть много методов в scipy или scikit-изображении. Последнее должно быть проще в использовании из-за готовых к использованию операций [resize] (http://scikit-image.org/docs/dev/api/skimage.transform.html#skimage.transform.resize). – sascha
@sascha Мне нужно, чтобы второй график (с меньшим количеством пикселей) был меньше первого, так что масштабы xy обеих картин равны. BTW Я рисую данные, а не изображения, поэтому важно, чтобы отдельные «пиксели» оставались видимыми с их приблизительными координатами. Также приемлемо решение, основанное на 'pcolormesh'. –