matplotlib отображает небольшое изображение без передискретизации

Я пытаюсь построить небольшое изображение в 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()
6
задан user588241 28 March 2012 в 15:55
поделиться