Matlab Colorbar индикатор динамического изменения
Запустив следующий код, я получаю черную полосу в цветовой панели, которая меняется в каждом цикле.
Если я изменю лимиты с 200 на 2000, и бегу заy= x.^2 +10*i +1000
, 2-ая версия, то иногда появляется панель, другие нет. Кто-нибудь знает почему? и как это сделать?
Возможно ли иметь динамическую цветовую панель? то есть, если мы выводим звуковой выход, чтобы показать в качестве цветовой шкалы уровень звука в дБ
Редакция:
x = 1:10;
figure;
for i = 1:10
y= x.^2 +10*i;
% y= x.^2 +10*i +1000; % 2nd version
plot(x,y,'-r'); hold on;
pause(1)
caxis([0 200]);
% caxis([0 2000]); % 2nd version
cmap = jet(200);
% cmap = jet(2000);% 2nd version
cmap(y(end), :) = 0;
set(gcf, 'Colormap', cmap);
colorbar;
disp(y(end))
grid on;
end
благодарю вас.
НОВОЕ РЕДАКТИРОВАНИЕ:
на основании превосходного ответа EBH, один дополнительный вопрос:
Я пытаюсь добавить второй колобар слева, но не могу заставить их работать:
x = 1:10;
w1 = -15:15;
w2 = -1:1;
figure;
for i = 1:10
% %{
y= x.^2 +10*i +1000; %
plot(x,y,'-r'); hold on;
pause(1)
caxis([0 2000]); %
cmap1 = jet(2000);%
cmap1(w1+y(end), :) = 0;
set(gcf, 'Colormap', cmap1);
h1=colorbar('eastoutside');
ylabel(h1, 'y')
disp(y(end))
%}
% %{
y2= x.^2 +5*i; %
plot(x,y2,'-b'); hold on;
pause(1)
caxis([0 150]);
cmap2 = jet(150);
cmap2(w2+y2(end-5), :) = 0; hold on;
cmap2(w2+y2(end), :) = 0; hold on;
set(gcf, 'Colormap', cmap2);
h2=colorbar('westoutside');
ylabel(h2, 'y2')
disp(y2(end-5))
disp(y2(end))
%}
grid on;
end
ТАК, я могу заставить это работать? проблема в caxis ?, и возможно ли уменьшить ширину обеих цветовых полос?