contourf
действительно работает немного иначе, чем другие ScalarMappable
с.Если вы укажете количество уровней (в данном случае 20), они будут переведены между минимальным и максимальным данными (приблизительно).Если вы хотите, чтобы уровни n
находились между двумя конкретными значениями vmin
и vmax
, вам необходимо указать их для функции контурной обработки
levels = np.linspace(vmin, vmax, n+1)
plt.contourf(fld,levels=levels,cmap='coolwarm')
Полный код:
import numpy as np
import matplotlib.pyplot as plt
fld=np.random.rand(10,10)
levels = np.linspace(0,2,21)
img=plt.contourf(fld,levels=levels,cmap='coolwarm')
plt.colorbar(img)
plt.show()
