subplot position
subplot_position Calculate position of subplot axis
[P_SUBPLOT,P_FIG] = subplot_position(X_WIDE,Y_WIDE,X_NUM,Y_NUM,FLAG_COLORBAR)
x_wide, y_wide are width of x and y direction, in pixels
x_num, y_num are number of figs in one row and column
flag_colorbar(optional): 0 without colorbar, 1 with X-direction
colorbar, 2 with Y-direction colorbar, 3 with X-dir bar separated,
4 with Y-dir bar separated.
P_subplot is a cell array of the sub figure positions, used in
subplot('position',P_subplot{II}), II is
--------------------------
| 1 | 2 | 3 |
--------------------------
| 4 | 5 | 6 |
--------------------------
P_fig is the total width of big figure in pixels
figure('Position',P_fig)
[...,P_COLORBAR] = subplot_position(...)
P_colorbar is colorbar position
colorbar('Position',P_colorbar)
if flag_colorbar = 0, these will be 0 too
[...,imode_axis] = subplot_position(...)
imode_axis is a vector of struct saves the mode of x/y labels
imode_axis.x = 1 means x label on
= 0 means x label off
imode_axis.y = 1 means y label on
= 0 means y label off
[...] = subplot_position(...,X_GAP,Y_GAP,C_GAP,C_WIDE)
x_gap, y_gap are gaps between figs, default is 50
c_gap is gap between colorbar and fig, default also 50
c_wide is width of colorbar, default is 30
[...] = subplot_position(...,X_GAP,Y_GAP,C_GAP,C_WIDE,X_BORDER,Y_BORDER)
x_border,y_border are additional gaps at borders, default is 0
Notice:
If you want to make no gap between 2 subplots, make sure the ratio
of X_WIDE/Y_WIDE equal to the DataAspectRatio between X and
Y-direction of the certain axis.
Example 1:
[P_subplot,P_fig,P_colorbar] = subplot_position(300,300,2,2,0,5,5,30,30,50,50);
figure('Position',P_fig)
subplot('position',P_subplot{1})
ezplot(@sin,[0,2*pi,-2,2])
set(gca,'XTickLabel',[])
subplot('position',P_subplot{2})
ezplot(@cos,[0,2*pi,-2,2])
set(gca,'XTickLabel',[])
set(gca,'YTickLabel',[])
subplot('position',P_subplot{3})
ezplot(@tan,[0,2*pi,-2,2])
subplot('position',P_subplot{4})
ezplot(@cot,[0,2*pi,-2,2])
set(gca,'YTickLabel',[])
Example 2:
[P_subplot,P_fig,P_colorbar,imode_axis] = subplot_position(300,300,3,2,1);
figure('Position',P_fig)
for ii = 1:6
subplot('position',P_subplot{ii})
if ~imode_axis(ii).x
set(gca,'XTickLabel',[])
end
if ~imode_axis(ii).y
set(gca,'YTickLabel',[])
end
end
colorbar('SouthOutside','Position',P_colorbar)
Cite As
Yuheng (2024). subplot position (https://www.mathworks.com/matlabcentral/fileexchange/56261-subplot-position), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
- MATLAB > Graphics > Formatting and Annotation > Axes Appearance > Combine Multiple Plots > Subplots >
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.