Matlab:打开propertyeditor或plotbrowser强制正确的文本框注释;没有它,注释失败

时间:2011-06-16 17:54:30

标签: matlab matlab-figure

我有一个通常很开心的程序,它接收文件,绘制它们,吐出pdf(字母大小)。我使用注释将标题放在一组三个子图上方,并用作具有文件信息和日期的页脚。我希望标题位于页面顶部,从边距填充到边距,居中。

我有两种运行程序的方法:“批处理”模式和“交互”模式。在“交互式”模式下,我使用简单的figure()命令创建图形。在“批处理”模式下,我使用figure('visible','off')创建图形。这是我制作注释的命令:

annotation(obj.hFigure(f),'textbox',[0 0.9 1 0.1],...
    'String',title,...
    'HorizontalAlignment','center',...
    'FontSize',18,...
    'LineStyle','none',...
    'FitBoxToText','off');

这里,“obj.hFigure(f)”只是我正在处理的图形的句柄。如您所见,我将图形放在图的顶部附近,并确保文本从框的底部开始(如果它更大)。

我的问题是上面注释的边距。在批处理模式下(没有数字显示),我在文本的两边都有10%左右的边距,这会破坏布局。在交互模式(数字显示)中,我没有得到边距:文本正确地从一个边缘流向另一个边缘。

我已将问题缩小到以下几点:如果我将数字显示为figure('visible','on') AND ,我可以在批处理模式下获得正确的ps打印响应< / p>

propertyeditor(gcf);
plotbrowser(gcf);
绘制每个图后

。这使程序花费大约两倍的时间(这不是一个大问题)。但我不明白的是:drawnowrefresh没有完成这两个命令会做什么?!

1 个答案:

答案 0 :(得分:0)

我不确定您的具体情况,但在过去遇到此类问题时,我通过明确设置数字大小取得了巨大成功:

set(gcf, 'Position', [100  100  300 300])

然后,在打印/保存之前将PaperPositionMode设置为auto,这似乎会强制打印的图形与屏幕上显示的尺寸相同:

set(gcf, 'PaperPositionMode','auto')