您可以提取第一個繪圖的位置並在第二個繪圖上使用。重新縮放時,MATLAB自動將顏色條移動到右側。
f1=figure(1);clf;
s1=subplot(1,2,1);
surf(peaks(20));
s2=subplot(1,2,2);
surf(peaks(20));
hb = colorbar('location','eastoutside');
%% # Solution:
s1Pos = get(s1,'position');
s2Pos = get(s2,'position');
s2Pos(3:4) = [s1Pos(3:4)];
set(s2,'position',s2Pos);
%% # Alternative method. Brute force placement
set(s1,'Units','normalized', 'position', [0.1 0.2 0.3 0.6]);
set(s2,'Units','normalized', 'position', [0.5 0.2 0.3 0.6]);
set(hb,'Units','normalized', 'position', [0.9 0.2 0.05 0.6]);
太棒了!自動解決方案更好,但強力讓我減少圖之間的間距,使其等於右圖和彩條之間的間距。感謝您提供兩種不錯的方式。 – petrichor