Выполняя следующий код, я получаю черную полосу на цветовой полосе, которая меняется в каждом цикле.
Если я изменю лимиты, с 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?, и можно ли уменьшить ширину обеих цветовых полос?
colorbar
. Почему бы не создать для этого свой собственный объектimage
? - person Suever   schedule 26.09.2016colormap
, чтобы сделать черную полосу, и есть только однаcolormap
на фигуру, поэтому каждый раз, когда вы рисуете полосу на обеих цветных полосах. Почему нельзя использовать методimage
? это гораздо более гибко. - person EBH   schedule 28.09.2016