Как установить фиксированную полосу цвета для pcolor в Python Matplotlib? - PullRequest
2 голосов
/ 14 июня 2010

Я использую pcolor с пользовательской картой цветов для построения матрицы значений.Я установил свою цветовую карту так, чтобы низкие значения были белыми, а высокие - красным, как показано ниже.Все мои матрицы имеют значения от 0 до 20 (включительно), и я бы хотел, чтобы 20 всегда было чисто красным, а 0 - всегда чисто белым, даже если матрица имеет значения, которые не охватывают весь диапазон.Например, если моя матрица имеет значения только от 2 до 7, я не хочу, чтобы она отображала 2 как белый, а 7 как красный, а скорее окрашиваю его, как будто диапазон по-прежнему составляет от 0 до 20. Как я могу это сделать?Я попытался использовать опцию "ticks =" на панели цветов, но это не сработало.

Вот мой текущий код (предположим, что «my_matrix» содержит значения для построения графика):

cdict = {'red': ((0.0, 1.0, 1.0),
         (0.5, 1.0, 1.0),
         (1.0, 1.0, 1.0)),
     'green': ((0.0, 1.0, 1.0),
           (0.5, 1.0, 1.0),
           (1.0, 0.0, 0.0)),
     'blue': ((0.0, 1.0, 1.0),
          (0.5, 1.0, 1.0),
          (1.0, 0.0, 0.0))}
my_cmap = matplotlib.colors.LinearSegmentedColormap('my_colormap', cdict, 256)
colored_matrix = plt.pcolor(my_matrix, cmap=my_cmap)
plt.colorbar(colored_matrix, ticks=[0, 5, 10, 15, 20])

Есть идеи, как это исправить, чтобы получить правильный результат?большое спасибо.

1 Ответ

2 голосов
/ 14 июня 2010

Догадка: ваша цветовая карта, вероятно, в порядке. Попробуйте настроить vmin и vmax при печати. ​​

pylab.imshow(im, vmin=0, vmax=20)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...