Создание определенной цветовой карты в matlab / python - PullRequest
0 голосов
/ 03 октября 2019

Не знаю, где лучше всего задать этот вопрос, но здесь он звучит так:

Из-за неисправности экрана моего компьютера я получил график, который сделал много лет назад, используя matlab, но прекрасно работает в pythonтакже, чтобы перейти от вашей обычной «горячей» цветовой карты к чему-то совершенно другому, как показано на рисунке ниже:

Верхняя часть - оригинальная горячаяи внизу «неисправность», переходящая от темно-синего к белому от ярко-розового

Кто-нибудь знает, как сделать это намеренно?

Как оказалось, мне нравится эта цветовая схемагораздо лучше, но не уверен, как / как это сделать правильно.

Ответы [ 2 ]

4 голосов
/ 03 октября 2019

Цветовая карта - это просто матрица из 3 столбцов, в которой каждая строка определяет цвет. В частности, столбцы определяют компоненты R, G, B соответственно. Поэтому вы можете создавать цветовые карты вручную.

Например, цветовую карту, которая переходит от синего к белому, можно создать, установив компоненту B значение 1 и разрешив двум другим диапазонам от 0 до 1:

cmap = [linspace(0,1,256).' linspace(0,1,256).' ones(256,1)];
colormap(cmap)
colorbar('horizontal')

enter image description here

Чего-то более близкого к вашему синему / розовому / белому примеру можно добиться, переставив столбцы цветовой карты hot:

cmap = hot(256);
cmap = cmap(:,[2 3 1]);
colormap(cmap),
colorbar('horizontal')

enter image description here

Многие красивые цветовые карты могут быть получены с помощью функции BrewerMap, доступной в Файловый обмен или GitHub .

Проблема с сгенерированными вручную цветными картами заключается в том, что они не в целом воспринимаемы . Напротив, многие из стандартных цветовых карт Matlab, таких как parula, или Python, таких как magma, воспринимаются одинаково. Вот обсуждение об однородных и неоднородных цветовых картах, сфокусированное на parula. Вы можете использовать карты цветов Python в Matlab с этой функцией обмена файлами Андером Бигури.

Вот два примера с Matlab parula и Python plasma. В любом из них равные приращения вдоль горизонтальной оси примерно соответствуют аналогичному восприятию «изменения цвета».

enter image description here

enter image description here

0 голосов
/ 03 октября 2019

Похоже, ваш экран просто перевернул цвета. Если вы хотите инвертировать цветовую карту в MATLAB, вы можете сделать это довольно просто, выполнив следующее:

colormap(1-hot);

, который изменит красные цвета на горячей карте на голубые, а черные на белые. Если вы предпочитаете наоборот (то есть красный -> белый, черный -> синий), вы можете сделать это:

colormap(1-flipud(hot));

Это должно работать для любой цветовой карты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...