Я использую colormap в python для построения и анализа значений в матрице. Мне нужно связать белый цвет с каждым элементом, равным 0,0, тогда как для других я хотел бы иметь «традиционную» цветовую карту. Глядя на Python Matplotlib Colormap Я изменил словарь, используемый pcolor как:Matplotlib python change single color in colormap
dic = {'red': ((0., 1, 1),
(0.00000000001, 0, 0),
(0.66, 1, 1),
(0.89,1, 1),
(1, 0.5, 0.5)),
'green': ((0., 1, 1),
(0.00000000001, 0, 0),
(0.375,1, 1),
(0.64,1, 1),
(0.91,0,0),
(1, 0, 0)),
'blue': ((0., 1, 1),
(0.00000000001, 1, 1),
(0.34, 1, 1),
(0.65,0, 0),
(1, 0, 0))}
В результате получается:
Я установил:
matrix[0][0]=0 matrix[0][1]=0.002
Но как вы можете видеть, что они оба связаны с белым цвет, даже если я установил 0,00000000001 в качестве отправной точки для синего. Как это возможно? Как я могу изменить его, чтобы получить то, что мне хотелось?
Может сказать мне, где вы установите опцию «разрывы»? Является ли интерполяция = 'none'? –
Его в вашем колормоне. У диктатора есть формат (x, y1, y2), обратите внимание, что для ваших y1 и y2 равны и мои изменения. В этом случае с моей цветовой палитрой это означает, что значения _till_ zero имеют цвет 1 для rgb (так белый), но значения _from_ zero имеют 0 для красного и зеленого цветов и 1 для синего (синий). См.: http://matplotlib.org/api/colors_api.html#matplotlib.colors.LinearSegmentedColormap –
Но если я определяю словарь так же, как и вы, мне также нужно использовать: np.ma.masked_values (matrix, 0) как параметр imshow(), иначе «трюк» не работает. –