Make subplot 'stick' to each other
이전 댓글 표시
Hi,
I am making a figure with several subplots (maps, specifically). Setting 'Position' will make each subplot very far away from each other since it is setting the outter boundary position. I tried using 'InnerPosition but it seems not working (don't know why, maybe because they are maps?).
How could I make the subplots stick to eachother? My code is also attached below.

fw = 0.5; % figure width
fh = 0.5 ; % figure height
L1 = 0; % row 1 from bottom;
L2 = L1+fh; % row 2 from bottom;
C1 = 0; % column from left
C2 = C1+fw; % column from left
Positions =[C1 L2 fw fh;
C2 L2 fw fh;
C1 L1 fw fh;
C2 L1 fw fh];
cbh = 0.015;
cbw = fw-0.1;
fhi = fw * (latmax-latmin)/(lonmax-lonmin) ; % inner figure height
ver_edge = (0.5-fhi)/2;
cbpos =[C1+0.05 1-0.5*ver_edge cbw cbh;
C2+0.05 1-0.5*ver_edge cbw cbh;
C1+0.05 L1+0.5*ver_edge cbw cbh;
C2+0.05 L1+0.5*ver_edge cbw cbh];
for ps = 1:4
subplot('Position',Positions(ps,:))
% skip other settings
cb1=colorbar('horizontal', 'fontsize',fz, 'fontweight', 'bold','Position',cbpos(ps,:)); % color bar definition; for later use
end
채택된 답변
추가 답변 (1개)
the cyclist
2022년 4월 21일
편집: the cyclist
2022년 4월 21일
0 개 추천
댓글 수: 4
Hannah
2022년 4월 22일
the cyclist
2022년 4월 22일
The code you posted errors out because some of the variables are missing. I tried substituting some values in, but I could not replicate anything close to what your figure shows. So, I can't really suggest any fix.
Hannah
2022년 4월 22일
It's definitely an issue with the map. I swapped in a normal plot, and it fills the space.
I don't have any experience with using worldmap, but it could be that a certain aspect ratio is enforced (perhaps because of the particular projection). That makes sense to me, because if you "stretch" only one dimension, you will no long obey the constraints of the projection.
latmin = -45;
latmax = 65;
lonmin = -160;
lonmax = 168;
fw = 0.5; % figure width
fh = 0.5 ; % figure height
L1 = 0; % row 1 from bottom;
L2 = L1+fh; % row 2 from bottom;
C1 = 0; % column from left
C2 = C1+fw; % column from left
Positions =[C1 L2 fw fh;
C2 L2 fw fh;
C1 L1 fw fh;
C2 L1 fw fh];
cbh = 0.015;
cbw = fw-0.1;
fhi = fw * (latmax-latmin)/(lonmax-lonmin) ; % inner figure height
ver_edge = (0.5-fhi)/2;
cbpos =[C1+0.05 1-0.5*ver_edge cbw cbh;
C2+0.05 1-0.5*ver_edge cbw cbh;
C1+0.05 L1+0.5*ver_edge cbw cbh;
C2+0.05 L1+0.5*ver_edge cbw cbh];
fz = 10; % font size
for ps = 1:4
subplot('Position',Positions(ps,:))
plot(rand(5))
% skip other settings
cb1=colorbar('horizontal', 'fontsize',fz, 'fontweight', 'bold','Position',cbpos(ps,:)); % color bar definition; for later use
end
카테고리
도움말 센터 및 File Exchange에서 Orange에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

