python определяет диапазон цветовой карты

Я сделал контурный рисунок, и по умолчанию он устанавливает восемь разных цветов в диапазоне от -150 до 250. Но я хочу увеличить количество цветов, поэтому разрешение цветовой полосы.

Я пробовал некоторые вещи (например, как в примере кода ниже), но ничего не получалось. Так может быть кто-то может помочь мне с этим?

Вот пример кода:

m2 = Basemap(projection='kav7',lon_0=0)
m2.drawcoastlines(linewidth=1.)
m2.drawparallels(np.arange(-90.,99.,30.))
m2.drawmeridians(np.arange(-180.,180.,60.))

v = np.linspace(-150., 250., 10., endpoint=True)
cs = m2.contourf(lon,lat,sshf_mean,latlon=True,cmap=cm.jet)
cbar = m2.colorbar(cs,location='bottom',pad="5%",ticks=v)

Таким образом, в конце должна быть цветовая полоса с 40 различными цветами вместо 8.

Большое спасибо!


person Leo    schedule 13.06.2017    source источник


Ответы (1)


contourf имеет две опции для установки количества уровней; вы можете либо установить их вручную, либо позволить matplotlib выбрать N уровней. Например:

import matplotlib.pylab as pl
import numpy as np

x = np.arange(10)
y = np.arange(10)
values = np.random.random(100).reshape((10,10))

pl.figure()
pl.subplot(131)
pl.contourf(x, y, values)
pl.colorbar()

pl.subplot(132)
# Automatically chose 100 levels:
pl.contourf(x, y, values, 100)
pl.colorbar()

pl.subplot(133)
# Manually specify 20 levels:
levels = np.linspace(0,1,20)
pl.contourf(x, y, values, levels)
pl.colorbar()

Производит:

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

person Bart    schedule 13.06.2017
comment
Отлично! Большое спасибо! :) - person Leo; 14.06.2017