如何让 Matlab 绘图填满整个页面?
How do I make a Matlab plot fill the whole page?
我想在 Matlab 中绘制一个高度是长度两倍的绘图。我尝试按照 this question 的建议使用 Position
和 PaperPositionMode
,像这样:
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
属性 了解另一种方法。
我想在 Matlab 中绘制一个高度是长度两倍的绘图。我尝试按照 this question 的建议使用 Position
和 PaperPositionMode
,像这样:
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
属性 了解另一种方法。