2014-09-29 2 views
0

У меня есть рисунок, показанный ниже. В настоящее время цветная схема рисунка использует весь диапазон цветовой карты (mpl.cm.Paired). То, что я хочу сделать, и не удалось выяснить, заключается в том, как ограничить использование matplotlib только подмножеством цветовой карты. В этом случае я стараюсь, чтобы начальный цвет был более темным оттенком синего. Вот черчения часть моего кода:Выберите цвет начала в matplotlib colormap

Figure = plt.figure(figsize=(22,10)) 
Map = Basemap(projection='robin', lon_0=0, resolution='l') 
x, y = Map(LONS, LATS) 
levels = np.arange(0, 4100, 100) 
fcp = Map.contourf(x, y, data, levels, interpolation="bicubic", cmap=mpl.cm.Paired) 

cb = Map.colorbar(fcp, "bottom", size="5%", pad='5%', extendrect=False) 
cb.ax.tick_params(labelsize=18) 
cb.solids.set_edgecolor("face") 
cb.set_label("metres",fontsize=18) 
cb.ax.set_aspect(0.047) 

Map.drawcoastlines(linewidth=1) 
Map.drawmapboundary(linewidth=1) 
Map.drawmeridians([-150,-100,-50,0,50,100, 150],labels=[1,1,1,0],fontsize=18) 
Map.drawparallels([-60,-30,0,30,60],labels=[1,1,1,1],fontsize=18) 

enter image description here

+0

Это, наверное, проще всего просто создать новый 'colormap' основанный на этом существующий. –

+0

Почему бы не использовать, например, цветовой пакет 'Blues'? «Сопряженный» здесь действительно неуместен. – mwaskom

+0

@mwaskom Хотя выбор цветовой карты всегда является темой страстной дискуссии среди научных людей, мой вопрос не должен был быть обязательно связан с этой цифрой. – deepak

ответ

7

Один из способов сделать это будет вызывать функцию mpl.cm.Paired() для подмножества нормированного диапазона (т.е., [0-1]), а затем использовать список цветов, которые она возвращает определить новую цветовую палитру:

import matplotlib.colors as mcol 

lvTmp = np.linspace(0.1,1.0,len(levels)-1) 
cmTmp = mlp.cm.Paired(lvTmp) 
newCmap = mcol.ListedColormap(cmTmp) 

вы должны будете бездельничать со значением 0.1 в этом linspace, чтобы получить начальный цвет, который вы хотите от встроенной палитры.

enter image description here

+0

Отлично! Спасибо, что это прекрасно работает. Не мог себе представить, что это будет так просто! – deepak

+0

Как только вы получите голову вокруг цветовых карт и нормализаторов, вы можете много сделать с ними. Как всегда, жесткая часть использует цвет соответствующим образом. – Deditos

Смежные вопросы