Как указать диапазон цветовых полос и сохранить его независимо от значений графика

Я напечатал это вчера вечером, но когда я собирался отправить его, я понял это. Отправляю на случай, если кому-то еще понадобится.

Я наношу метеорологические значения каждый час в течение нескольких дней на базовой карте.

Я хочу всегда сохранять одинаковые значения цветовой полосы для каждой карты. Допустим, от 0 до 10 для каждого участка.

Иногда все значения очень близки к нулю, а другие находятся в диапазоне от 0 до 10.

for file in files:
    ncfile = Dataset(file)
    cbarticks=np.arange(0.0,10.0,0.5)
    bm.contour(x, y, to_np(energyproduction), 10, colors="black",vmin=0,vmax=10.0)
    bm.contourf(x, y, to_np(energyproduction), 10,cmap = get_cmap('jet'),vmin=0,vmax=10.0)
    plt.colorbar(shrink=.62,ticks=cbarticks)
    plt.show()

Я установил так, чтобы минимальное и максимальное значения всегда были 0 и 10. И чтобы тики всегда были 0-10 с шагом 0,5. Как я могу заставить цветовую полосу оставаться неизменной.

График, показывающий цветную полосу, когда данные немного отличаются

График, показывающий цветную полосу при больших различиях в данных

Я бы предпочел, чтобы цветовая полоса всегда имела один и тот же диапазон


person twseewx    schedule 05.06.2018    source источник


Ответы (1)


Проблема была в моем контуре () и контуре (). Раньше я передавал 10 внутри функции.

bm.contour(x, y, to_np(energyproduction), 10, colors="black",vmin=0,vmax=10.0)
bm.contourf(x, y, to_np(energyproduction), 10,cmap = get_cmap('jet'),vmin=0,vmax=10.0)

Обозначение 10 означает, что между минимальным и максимальным значением графика есть 10 шагов. Таким образом, если есть только значения 0-1, вы получите 0,1 шага построения контуров и т. д.

Удалив 10 и увидев это на cbarticks, я смог получить одинаковые значения цветовой полосы для каждого графика независимо от значений.

for file in files:
     ncfile = Dataset(file)
     cbarticks=np.arange(0.0,10.0,0.5)
     bm.contour(x, y, to_np(energyproduction), cbarticks, colors="black",vmin=0,vmax=10.0)
     bm.contourf(x, y, to_np(energyproduction), cbarticks, cmap = get_cmap('jet'),vmin=0,vmax=10.0)
     plt.colorbar(shrink=.62,ticks=cbarticks)
     plt.show()

Я полагаю, что это то же самое обозначение «уровней» внутри контура базовой карты.

введите здесь описание изображения

введите здесь описание изображения

person twseewx    schedule 05.06.2018
comment
Привет, откуда ты импортировал свою цветовую карту? т.е. на что ссылается get_cmap()? - person Shaun Lowis; 06.12.2019