2

我在 Matlab 中创建了一个绘图,但不幸的是绘图的一侧被绘图窗口切断了。这是我用来创建情节的代码:

% create a plot with dots and with bold sides
point = num(:, 1);
depth = num(:, 2);
hfig = plot(point, depth, '-s', 'Color', 'k', 'MarkerFaceColor', 'k', 'MarkerEdgeColor', 'k', 'MarkerSize', 10);

% make the outside of the graph bold
set(gca, 'LineWidth', axis_size);
set(gca,'FontSize', ticksize, 'FontName', fontname);
set(gca, 'Position', [0.2 0.2 0.8 0.4])
xlabel('Point Number')
ylabel('Depth (cm)')

这是输出:

截止图像

注意情节的一侧是如何被切断的。或者,这是一张显示我想要实现的目标的图片:

我想要达到的目标

我只是在没有调用的情况下创建了绘图set(gca, 'Position', [0.2 0.2 0.8 0.4]),然后通过调整窗口大小来调整绘图的大小。

但是我如何在代码中做到这一点?我还想确保我可以将绘图保存为具有相同尺寸的 PNG 文件。我一直在玩弄该set()功能的各种组合,但一直无法达到我想要的效果。

4

3 回答 3

5

尝试设置OuterPosition情节。

set(gca,'OuterPosition',[0.2 0.2 0.8 0.4]);

下图显示了两者之间的区别:

在此处输入图像描述

是相关的 MathWorks 帮助页面。

于 2012-05-23T15:33:23.080 回答
1

安德烈有最简单的答案,但或者(从长远来看)你可以去文件交换并下载 subaxis.m,它取代了 subplot,甚至对于单轴图也非常棒(你可以定义 LeftMargin 和 RightMargin 等属性和PaddingTop 和 PaddingBottom)

http://www.mathworks.com/matlabcentral/fileexchange/3696-subaxis-subplot

于 2012-05-24T05:35:38.313 回答
0

以下文档(如何使用 Matlab 生成打印时具有正确尺寸的图形)提供了一些示例代码,可用于以适当的方式调整绘图的大小。

使用了以下代码:

point = num(:, 1);
depth = num(:, 2);

hfig = plot(point, depth, '-s', 'Color', 'k', 'MarkerFaceColor', 'k', 'MarkerEdgeColor', 'k', 'MarkerSize', 10);
set(gca, 'LineWidth', axis_size);
set(gca,'FontSize', ticksize, 'FontName', fontname);
set(gcf,'PaperUnits','centimeters')
xSize = 30; ySize = 5;
xLeft = (21-xSize)/2; yTop = (30-ySize)/2;
set(gcf,'PaperPosition',[xLeft yTop xSize ySize])
set(gcf,'Position',[300 600 xSize*50 ySize*50])

xlabel('Point Number');
ylabel('Depth (cm)');  

这是结果的图片。这看起来类似于我在上面的问题中发布的那个。我不知道这是否取决于显示器尺寸和/或屏幕分辨率。

预期结果

于 2012-05-24T00:38:16.130 回答