如何让 Matlab 绘图填满整个页面?

How do I make a Matlab plot fill the whole page?

我想在 Matlab 中绘制一个高度是长度两倍的绘图。我尝试按照 this question 的建议使用 PositionPaperPositionMode,像这样:

figure
set(gcf,'PaperPositionMode','auto');
set(gcf, 'Position', [0 0 100 200]);
barh(1:20);
print('test', '-dpng');

令人讨厌的是,这会调整纸张大小但不会调整绘图大小,如下所示。

有什么方法可以制作指定宽高的图表吗?我 运行 这是在无头服务器上进行的,因此无法选择单击和拖动或任何其他特定于 GUI 的解决方案。显然我实际上并不想要 100x200 的情节,我只是想让这个数字足够小以很好地适应问题。

您可以尝试设置纸张尺寸和单位。 There's a similar question on Mathworks。相关内容:

set(0,'defaultfigurepaperunits','inches');
set(0,'defaultfigurepaperorientation','landscape');
set(0,'defaultfigurepapersize',[8.5 11]);
set(0,'defaultfigurepaperposition',[.25 .25 [8.5 11]-0.5]);

其中 set(0, ...) 设置根图形系统值。你也可以用你的数字代替。希望这有帮助。

替代方法参考 figure()documentation。使用 units & outerposition 属性。

figure('units','normalized','outerposition',[0 0 1 1])

另请参阅 position 属性 了解另一种方法。