Используя imshow
'vmin
и vmax
аргументы, вы можете ограничить диапазон цветов от 1800 до 2000. Если вы хотите, чтобы нижние значения были сопоставлены с черным, вы можете использовать cmap.set_under(black)
.
import numpy as np
import matplotlib.pyplot as plt
t = np.linspace(-7,7,301)
x,y = np.meshgrid(t,t)
z1 = np.sin(x)*np.cos(6*y) + np.cos(12*x*y)/6
z2 = np.exp(-((x-2)**2+(y-2)**2)*3)
z = (z1*6/7+1)*100+1800-z2*1949
cmap=plt.get_cmap("viridis")
cmap.set_under("black")
fig, (ax1, ax2) = plt.subplots(ncols=2, figsize=(9,3.0))
im1 = ax1.imshow(z, cmap=cmap)
fig.colorbar(im1, ax=ax1)
im2 = ax2.imshow(z, vmin=1800, vmax=2000, cmap=cmap)
fig.colorbar(im2, ax=ax2)
ax1.set_title("Original")
ax2.set_title("Linear between 1800 and 2000")
plt.show()