Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Matlab中调整绘图大小,使图形不会被绘图窗口的边缘截断_Matlab_User Interface_Matlab Figure - Fatal编程技术网

在Matlab中调整绘图大小,使图形不会被绘图窗口的边缘截断

在Matlab中调整绘图大小,使图形不会被绘图窗口的边缘截断,matlab,user-interface,matlab-figure,Matlab,User Interface,Matlab Figure,我已经在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);

我已经在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()
函数的各种组合,但我一直无法获得我想要的。

尝试设置绘图的
外部位置

set(gca,'OuterPosition',[0.2 0.2 0.8 0.4]);
下图显示了两者之间的差异:

是相关的MathWorks帮助页面

以下文档()提供了一些示例代码,可用于以适当的方式调整绘图的大小

使用了以下代码:

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)');  
下面是结果的图片。这看起来与我在上面的问题中发布的类似。我不知道这是否取决于显示器大小和/或屏幕分辨率


Andrey给出了最简单的答案,但是(从长远来看)您也可以转到文件交换并下载subaxis.m,它取代了子地块,甚至对于单轴绘图来说都是极好的(您可以定义诸如LeftMargin和RightMargin以及PaddingTop和PaddingBottom之类的属性)


谢谢你;非常感谢!我仍然觉得设置绘图的
位置
外部位置
有点困难,因为我得到的东西仍然被切断。你能推荐一些我可以用来正确调整绘图大小的值吗?这是我目前使用的解决方案,但Xurtio和Andrey的解决方案也很好。谢谢大家的回复!