how (in a program) to dock figures side by side
77 次查看(过去 30 天)
显示 更早的评论
I want to dock figures (within a program) as shown in the image attached using a program. What handle properties do I need to set to achieve this?
The script below puts figures into 3 tabs such that only 1 is visible at a time. To get what I want, I grab figure 1 tab, move until a block box splits the figures. Then I adjust with pane width by grabbing the line separating the panes.
h=figure(1); plot(1,1); set(h,'WindowStyle','docked')
h=figure(2); plot(2,2); set(h,'WindowStyle','docked')
h=figure(3); plot(3,3); set(h,'WindowStyle','docked')
When I move the figure from the docked tabbed arrangement to the side by side arrangement there is only a change in the position property of the figure. When tabbed, the position is of the form [1 1 width height], and when side-by-side (on the left) it becomes [4 4 width/2 height] or if on right, [width/2 4 width height]. I've tried setting the position both with set and inspect but an error is generated.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/146912/image.png)
回答(2 个)
Image Analyst
2015-1-31
Set the 'OuterPosition' property of the figure:
h1 = figure;
plot(rand(1, 10));
% Make figure fit in upper left quadrant..
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.5, 0.5, 0.5]);
h2 = figure;
plot(rand(1, 10));
% Make figure fit in upper right quadrant..
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0.5, 0.5, 0.5, 0.5]);
h3 = figure;
plot(rand(1, 10));
% Make figure fit in lower left quadrant..
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0, 0.5, 0.5]);
h4 = figure;
plot(rand(1, 10));
% Make figure fit in lower left quadrant..
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0.5, 0, 0.5, 0.5]);
Matt J
2016-2-2
编辑:Matt J
2016-2-2
If it will always be a 1x3 arrangement (or smaller), then you could first template one manually using the arrangement controls in the figure window
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/172617/image.jpeg)
This results in, for example,
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/172618/image.jpeg)
Thereafter, figures will always dock this way, even when done programmatically,
>> h=[figure(1), figure(2), figure(3)];
>> set(h, 'WindowStyle', 'Docked');
3 个评论
Matt J
2024-3-1
编辑:Matt J
2024-3-1
(1) undock the figure window from the Matlab desktop window
(2) spread the windows out side-by-side using the layour controls as I mentioned
(3) redock them in the Matlab desktop
Subsequent to this, future figure plots will be automatically docked in this arrangement.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Interactive Control and Callbacks 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!