아래 그림과 같이 9 개의 서브 플로트를 하나의 컬러 막대로 세 개의 서브 플로트로 플롯합니다.MATLAB 컬러 바 틱 레이블에 오류가 있습니까?
여기서 색상 막대의 가장 높은 값을 > value
으로 표시하려고합니다. 놀랍게도 직접 눈금 레이블을 h.TickLabels{end} = ['>' h.TickLabels{end}];
으로 편집하면 색상 막대가 값을 반복하기 시작합니다.
h.TickLabels{end} = ['>' h.TickLabels{end}];
을 제거하면 색상 막대가 문제없이 표시됩니다. 그림 크기를 set(gcf, 'PaperUnits', 'inches', 'PaperPosition', [0 0 8 8])
으로 변경하면 [0 0 5 5]
으로 바뀌고 다시 컬러 바 라벨이 바뀝니다.
이 오류를 해결하는 방법?
data = [1 2 3; 5 7 3; 12 29 14; 1 7 3; 2 8 3; 5 4 1; 2 2 1; 2 3 1; 1 5 2];
for i=1:9
subplot(3, 3, i)
plot(data(i,:));
if ismember(i, [1:3])
caxis([0 20])
if i==3
h = colorbar('Fontsize', 6, 'LineWidth', 0.15, 'TickDirection', 'out',...
'TickLength', 0.02);
set(h, 'Position', [.935 .6867 .01 .2533])
h.TickLabels{end} = ['>' h.TickLabels{end}];
end
end
if ismember(i, [4:6])
caxis([0 6])
if i==6
h = colorbar('Fontsize', 6, 'LineWidth', 0.15, 'TickDirection', 'out',...
'TickLength', 0.02);
set(h, 'Position', [.935 .3733 .01 .2533])
h.TickLabels{end} = ['>' h.TickLabels{end}];
end
end
if ismember(i, [7:9])
caxis([0 4])
if i==9
h = colorbar('Fontsize',6, 'LineWidth', 0.15, 'TickDirection', 'out',...
'TickLength', 0.02);
set(h, 'Position', [.936 .06 .01 .2533])
h.TickLabels{end} = ['>' h.TickLabels{end}];
end
end
end
set(gcf, 'PaperUnits', 'inches', 'PaperPosition', [0 0 8 8])
print('test', '-djpeg', '-r300')
close all
TickLabels를 수동으로 변경하면 일이 엉망이된다는 아이디어를 얻었으므로 주석에 해당 답변을 추가 할 수 있습니다. 감사. – Mario
@SardarUsama 귀하의 수정 된 답변을 읽었지만, 여기에 내 문제를 설명하기 위해 MCVE를 게시했습니다. 실제로 나는 평균 강우량 데이터, 평균 및 분산이 있으며, 범위는 0에서 400 사이입니다. 색상 막대 제한은 95 백분위 수 값으로 고정됩니다. 필자는 많은 플롯을 가지고 있으므로 매번 틱 레이블 간격을 편집하는 것은 매우 어려울 것입니다. – Mario
아니, 이걸하고있어. 'limit = prctile (datat, 95); caxis ([0, limit]) '를 입력하십시오. – Mario