Prevenga anti-aliasing para imshow en matplotlib

Cuando uso el método imshow () de matplotlib para representar una pequeña matriz numpy, termina haciendo un poco de suavizado entre píxeles. ¿Hay alguna manera de deshabilitar esto? Hace que mi figura sea engañosa en las presentaciones. Una matriz de 28x28 trazada con imshow ()

La figura de arriba es una imagen de 28×28, así que debería ver grandes cuadrados de colores individuales que representan cada píxel (como matlab lo mostraría cuando use imagesc ()). Pero en cambio, los píxeles parecen estar borrosos con los píxeles vecinos. ¿Hay alguna manera de deshabilitar este comportamiento?

Hay una opción de interpolación para el imshow que controla cómo y si la interpolación se aplicará a la representación de la matriz. Si intentas

 imshow(array, interpolation="nearest") 

Usted podría obtener algo más como usted quiere. Como ejemplo

 A=10*np.eye(10) + np.random.rand(100).reshape(10,10) imshow(A) 

imshow (a)

comparado con

 A=10*np.eye(10) + np.random.rand(100).reshape(10,10) imshow(A, interpolation="nearest") 

introduzca la descripción de la imagen aquí

También puedes probar la función.

 matshow 

cuyo nombre indica que hace exactamente lo que usted pidió: representa matrices. Es muy útil cuando no es necesario personalizar la figura demasiado.

Por cierto, uno de los mejores recursos para matplotlib es su Galería