Предотвратить сглаживание для imshow в matplotlib - PullRequest
42 голосов
/ 04 декабря 2011

Когда я использую метод iphowlib () в matplotlib, чтобы представить небольшую пустую матрицу, в итоге происходит некоторое сглаживание между пикселями.Есть ли способ отключить это?Это приводит к тому, что моя фигура вводит в заблуждение в презентациях. A 28x28 matrix plotted with imshow()

Рисунок выше представляет собой изображение размером 28x28, поэтому я должен видеть большие квадраты одного цвета, представляющие каждый пиксель (как Matlab будет отображать его при использовании imagesc ()),Но вместо этого пиксели выглядят размытыми с соседними пикселями.Есть ли способ отключить это поведение?

Ответы [ 2 ]

48 голосов
/ 04 декабря 2011

Существует опция интерполяции для imshow, которая управляет тем, как и если интерполяция будет применяться к визуализации матрицы. Если вы попробуете

imshow(array, interpolation="nearest") 

ты мог бы получить что-то еще, как ты хочешь. Как пример

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

imshow(A)

по сравнению с

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

enter image description here

19 голосов
/ 12 февраля 2012

Вы также можете попробовать функцию

matshow 

, название которой указывает на то, что она делает именно то, что вы просили - представлять матрицы.Это очень удобно, когда вам не нужно слишком много настраивать фигуру.

Кстати, одним из лучших ресурсов для matplotlib является их Галерея

...