Evitar el 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 desactivar esto? Hace que mi figura sea engañosa en las presentaciones.
La figura de arriba es una imagen de 28x28, por lo que debería estar viendo grandes cuadrados de colores simples que representan cada píxel (como matlab lo mostraría cuando usa imagesc()). Pero en cambio, los píxeles parecen estar borrosos con los píxeles vecinos. ¿Hay alguna manera de desactivar esto comportamiento?
2 answers
Hay una opción de interpolación para imshow
que controla cómo y si la interpolación se aplicará a la representación de la matriz. Si intenta
imshow(array, interpolation="nearest")
Usted podría conseguir algo más como usted quiere. Como ejemplo
A=10*np.eye(10) + np.random.rand(100).reshape(10,10)
imshow(A)
Comparado con
A=10*np.eye(10) + np.random.rand(100).reshape(10,10)
imshow(A, interpolation="nearest")
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-04 17:47:34
También puede probar la función
matshow
Cuyo nombre indica que hace exactamente lo que usted pidió - representar 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-06 14:01:23