Как построить цветовую полосу с определенным диапазоном значений в Matlab

У меня есть раскрашенные линии, и я хочу построить цветовую полосу для этих строк с определенным значением. Линии раскрашены значением RGB. Теперь я хочу изменить значение цветной полосы на другой диапазон значений. Я имею в виду, что мне нужно только изменить диапазон отображаемого значения в цветовой полосе на другой диапазон. в этой ссылке есть исходный вывод для цветной полосы, и я хочу изменить значение цветную полосу на другой диапазон значений, например Это. Это мой код, который я писал все время, он показывает мне мой исходный диапазон, а не мой диапазон определения

hold on
for k = 1:Num_Line_SIFTS
 plot3([SIFT_1((k,1),SIFT_2((k,1)],[SIFT_1((k,2),SIFT_2((k,2)],[SIFT_1((k,3),SIFT_2((k,3)],...
       'o-','Color',[RGB_0_1(k,1) RGB_0_1(k,2) RGB_0_1(k,3)],'MarkerFaceColor',[RGB_0_1(k,1) RGB_0_1(k,2) RGB_0_1(k,3)],'MarkerEdgeColor',...
       'k', 'LineWidth',2)
end

h = colorbar;
set(h,'xlim', [ min(min(Uncertainty_Distances_between_SIFTs))  max(max(Uncertainty_Distances_between_SIFTs))])

hold off

может ли кто-нибудь помочь мне в решении этой проблемы?


person Reza_M    schedule 12.05.2015    source источник


Ответы (1)


Проверьте «Ytick» и «YtickLabel». Первый используется для определения точек (значений) вашей цветовой полосы (то, что вы называете исходным диапазоном), которые вы хотите отобразить галочкой. На вашем рисунке эти точки/значения равны 10,20,30...60. С другой стороны, свойство «YtickLabel» определяет, что будет отображаться в позициях Ytick (то, что вы называете определенным диапазоном, если я правильно понимаю). Следовательно, вы можете создать цветовую полосу, получить ее дескриптор:

h = colorbar;

а затем: а) Решите, сколько значений вы хотите «отметить» на цветовой шкале (в этом примере исходные шесть):

set(h,'Ytick',linspace(10,60,6));

б) Решите, какое значение будет отображаться в каждой из «галочек».

set(h,'Yticklabel', linspace(min(min(Uncertainty_Distances_between_SIFTs)),  max(max(Uncertainty_Distances_between_SIFTs)),6));

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

set(h,'Yticklabel',{'a','b','c'});

Если предоставленные значения ticklabel меньше, чем заданные тики, метки зацикливаются.

person Stefanos Stamatiadis    schedule 12.05.2015
comment
ВОТ ЭТО ДА!! THX за ваш ответ. это именно то, что мне нужно! - person Reza_M; 13.05.2015