Хотя предложение @ user3483203 очень хорошо, вы все-таки интерполируете карту цветов.Вы можете избежать этого, сначала получив цветовую карту в виде матрицы цветов (на основе исходной интерполяции), а затем выберите часть этой матрицы в качестве своей новой цветовой карты:
import matplotlib as mpl
cmap = mpl.cm.Blues(np.linspace(0,1,20))
cmap = mpl.colors.ListedColormap(cmap[10:,:-1])
Ваш пример становится
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
cmap = mpl.cm.Blues(np.linspace(0,1,20))
cmap = mpl.colors.ListedColormap(cmap[10:,:-1])
np.random.seed(1)
data = np.sort(np.random.rand(8,12))
plt.figure()
c = plt.pcolor(data, edgecolors='k', linewidths=4, cmap=cmap, vmin=0.0, vmax=1.0)
plt.colorbar(c)
plt.show()
, который дает

, который в этом случае, вероятно, эквивалентен повторно интерполированной карте цветов, так как Blues
происходит от некоторогоинтерполяция.
Для других цветовых карт результаты могут быть совсем другими.Например, для jet
:
Нет новой интерполяции, а только подмножество исходной карты цветов (т. Е. Текущего решения):

Использование повторной интерполяции (т. Е. Решение @ user3483203):
