lcmap
lcmap
lcmap
Если вы используете свое определение cmap, длина записи составляет всего 256 записей, и установка только 0-й записи для нового цвета едва заметна в цветовой шкале или в наборе данных, который имеет несколько наименьших значений. Я преувеличил его: (1) установив новый цвет на зеленый, для максимальной контрастности, и (2) установил 32 наименьших значения lcmap для нового цвета, и это нормально. В BaseMap примере файл plotsst.py результат:
от вставки этого кода, чтобы заменить строку, которая определяет im1
:
import palettable
cmap = palettable.colorbrewer.sequential.PuRd_9.mpl_colormap
lcmap = [cmap(i) for i in range(cmap.N)]
for i in range(32):
lcmap[i] = (0, .5, 0, 1.0)
cmap_green = cmap.from_list('0th entry green', lcmap, cmap.N)
im1 = m.pcolormesh(lons,lats,sst,shading='flat',cmap=cmap_green,latlon=True)
palettable.colorbrewer.sequential.PuRd_9
имеет девять значений, как и ожидалось, но превратить его в a mpl_colormap
сглаживает его до 256.
Включая ответ @Pablo Reyes, код
import palettable
cmap = palettable.colorbrewer.sequential.PuRd_9.mpl_colormap
lcmap = [cmap(i) for i in range(cmap.N)]
lcmap[0] = (0, .5, 0, 1.0)
cmap_green = cmap.from_list('0th entry green', lcmap, 9)
im1 = m.pcolormesh(lons,lats,sst,shading='flat',cmap=cmap_green,latlon=True)
и результат
Там вы идете!
благодаря @cphlewis! – user308827