Пользовательская цветовая карта Matlab только с 3 цветами

просто хотите проверить, можно ли создать собственную цветовую карту только с 3 цветами? (нет необходимости в градиенте).

Пример: диапазон данных от 0-100,

  • так что 0-33 это один цвет,
  • 34-67 — другой цвет,
  • а 68-100 — другой цвет.

person user990639    schedule 08.07.2014    source источник


Ответы (4)


Просто используйте цветовую карту с тремя строками. Каждая строка определяет цвет с точки зрения компонентов R, G, B.

A = randi(100,16,16); %// example data
imagesc(A) %// display matrix as image
colormap([1 0 0; 0 1 0; 0 0 1]) %// apply colormap
colorbar %// show color bar

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

Это определяет равномерно распределенные пороги между цветами. Если вам нужно больше контроля, вам нужно иметь более трех рядов с повторением некоторых цветов. Например,

colormap([1 0 0; 1 0 0; 0 1 0; 0 0 1]) %// apply colormap

определит порог 50% для первого цвета, 75% для второго и 100% для третьего.

person Luis Mendo    schedule 08.07.2014

Возьмите этот пример:

% some matrix with integer values in the range [0,100]
Z = peaks;
Z(:) = round((Z(:)-min(Z(:))) ./ range(Z(:))*100);

% show as image (with scaled color mapping)
image(Z, 'CDataMapping','scaled')
caxis([0 100])    % set axes CLim property
colormap(eye(3))  % set figure Colormap property
colorbar          % show colorbar

Обратите внимание, что цвета масштабируются в диапазоне [0 100], этот диапазон отображается в цветовую карту текущей фигуры (которую мы установили только на три цвета).

пики

person Amro    schedule 08.07.2014

Следуйте этому примеру: Как программно создать пользовательскую карту цветов? но вместо R = linspace(0,t(1),50)' вы бы использовали R = ones(50,1)*t(1)

или еще проще:

если цвет 1 t1 = [r1, g1, b1] и т. д., то

map(1:34, :) = repmat(t1, 33, 1)
map(35:68, :) = repmat(t2, (67-34), 1)

так далее...

OR

map(1:34, :) = bsxfun(@times, t, ones(33,3)) и т.д...

person Dan    schedule 08.07.2014

Проверьте мой ответ здесь

Вы можете использовать этот код и решить, интерполировать значения или нет, это всего лишь 2 строки кода.

Изображение результата, показанное в исходном сообщении для цветовой карты GYR cutom.

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

person Ander Biguri    schedule 08.07.2014