Явно используйте параметры vmin
и vmax
imshow
:
При использовании скалярных данных и без явных норма , vmin и vmax определяют диапазон данных, который охватывает цветовая карта. По умолчанию цветовая карта охватывает весь диапазон значений предоставленных данных. vmin , vmax игнорируются, если используется параметр norm .
import numpy as np
import matplotlib.pyplot as plt
plt.figure()
img = np.ones((3, 3))
plt.imshow(img, vmin=0, vmax=1)
plt.figure()
plt.imshow(np.array([1, 1, 1, 1, 0, 1, 1, 1, 1]).reshape(3, 3))
plt.show()
Для второго примера диапазон данных [0 ... 1]
, поэтому по умолчанию цвета масштабируются относительно этого диапазона. Но, для первого примера, желаемый диапазон данных [0 ... 1]
не может быть извлечен из самих данных (всех), так что вы должны предоставить эту информацию явно.
Надеюсь, что это поможет!
----------------------------------------
System information
----------------------------------------
Platform: Windows-10-10.0.16299-SP0
Python: 3.8.1
Matplotlib: 3.2.0rc3
NumPy: 1.18.1
----------------------------------------