Настройка альфа цветной полосы в MATLAB R2014b

У меня есть цветной график (из изображений) с альфа-картой. Я бы хотел, чтобы цветовая полоса отражала альфу (обратите внимание, что на изображении ниже цветовые карты одинаковы). Я нашел решения в Интернете, но ни одно из них не работает в R2014b.

Код здесь:

subplot(2,1,1)
A = imagesc(meshgrid(0:10,0:5));
alpha(A,1)
colorbar

subplot(2,1,2)
B = imagesc(meshgrid(0:10,0:5));
alpha(B,.7)
colorbar

Одна цветовая карта - разные альфа-каналы.

Джеймс


person James    schedule 02.12.2014    source источник


Ответы (2)


Вы можете добавить текстовое поле с альфа-каналом поверх цветовой полосы. Это работает для более поздних версий MATLAB.

cb=colorbar

annotation('textbox',...
    cb.Position,...
    'FitBoxToText','off',...
    'FaceAlpha',0.5,...
    'EdgeColor',[1 1 1],...
    'BackgroundColor',[1 1 1]);
person A Ueland    schedule 08.03.2016

В MATLAB до R2014b colorbar сама по себе является осью, содержащей изображение, для которого вы можете установить альфу:

hb = findobj(gcf,'Type','axes','Tag','Colorbar'); 
hi = findobj(hb,'Type','image');
alpha(hi,0.7)

Вместо gcf используйте дескрипторы отдельных подграфиков.

Или сохраните его дескриптор, когда сделаете это:

hb = colorbar;

Начиная с R2014b, цветовая полоса создается с использованием новой графической системы дескриптора, в которой больше нет дочернего изображения для изменения. colorbar создается внутри с помощью colorbarHGUsingMATLABClasses, который представляет собой запутанный файл .p, поэтому неясно, как он устроен.

person chappjc    schedule 02.12.2014
comment
Я попробовал этот, и он ничего не сделал. Это с R2014b? - person James; 03.12.2014
comment
@ Джеймс Да, R2014b. Я сделаю более полный пример. Возможно, я упустил какую-то деталь. - person chappjc; 03.12.2014
comment
@Джеймс Йайкс! На R2014b не понятно как это сделать. Извините, я неправильно понял проблему. - person chappjc; 03.12.2014