Я пытаюсь построить небольшое изображение в python с помощью matplotlib и хотел бы, чтобы отображаемые оси имели ту же форму, что и массив numpy, из которого он был сгенерирован, т. е. данные не должны подвергаться повторной выборке. Другими словами, каждая запись в массиве должна соответствовать пикселю (или около того) на экране. Это кажется тривиальным, но даже после того, как я некоторое время порылся в Интернете, я не могу заставить его работать:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
X = np.random.rand(30,40)
fig = plt.figure()
fig.add_axes(aspect="equal",extent=[0, X.shape[1], 0, X.shape[0]])
ax = fig.gca()
ax.autoscale_view(True, False, False)
ax.imshow(X, cmap = cm.gray)
plt.show()