Python matplotlib imshow всегда дает мне белый цвет, независимо от того, отправляю ли я массив из 1 или 0 - PullRequest
0 голосов
/ 03 ноября 2018
import matplotlib.pyplot as plt
import numpy as np
_im1 = np.array([
    [1, 1, 1, 1, 1],
    [1, 1, 1, 1, 1],
    [1, 1, 1, 1, 1],
    [1, 1, 1, 1, 1],
    [1, 1, 1, 1, 1]
]).astype(np.uint8)

_im2 = np.array([
    [0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0]
]).astype(np.uint8)


fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 8))

ax1.set_title('1s')
ax1.imshow(_im1 , cmap='binary')

ax2.set_title('Os')
ax2.imshow(_im2, cmap='binary')

plt.tight_layout()
plt.subplots_adjust(top=1)
plt.show()
plt.clf()

Я получаю оба изображения белого цвета. Я попытался использовать cmap = 'grey', тогда оба показывают как черный Я использовал это имеет ссылку: Получение черных графиков с помощью plt.imshow после умножения массива изображений на скаляр

1 Ответ

0 голосов
/ 03 ноября 2018
ax1.set_title('1s')
ax1.imshow(_im1, cmap='binary', vmin=0, vmax=1)

ax2.set_title('Os')
ax2.imshow(_im2, cmap='binary', vmin=0, vmax=1)

Редактировать: обновлено, чтобы удовлетворить комментарий. cmap='gray' с vmax / vmin тоже работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...