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!

