下の図に示すように9つのサブプロットを1つのカラーバーでプロットしています。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
いいえ、私はこれをしています '限界= prctile(datat、95);毎回 caxis([0、limit])を実行します。 – Mario