4

我有一个使用带有颜色条的轮廓生成的图形。我的大部分情节都很好,但是当颜色条上的值是 order10^{-3}时,数字0.005等要么由颜色条写入,要么x10^{-3}写在顶部。

在这两种情况下,标签的一部分都会被切断 - 3in或inx10^{-3}的一半。50.005

我可以使用

set(gca, 'ActivePositionProperty', 'OuterPosition')

对于屏幕上的图形,但我需要将其保存为 eps 格式。当我这样做时,3(或5)再次被切断!

如果我手动拉动图形窗口的右下角以使其更大,我也可以解决此问题。但是,与绘图本身相比,这会改变轴标签等的大小,因此它们与我的所有其他数字不同,即我不调整大小的数字。

有什么建议么?

4

3 回答 3

2

Matlab 对图形使用两种尺寸:屏幕尺寸(Position图形属性)和PaperSize. 前者用于在屏幕上显示,后者用于打印或导出为.fig. 我怀疑这是你问题的根源。

您可以尝试以下方法:

size = get(gcf,'Position');
size = size(3:4); % the last two elements are width and height of the figure
set(gcf,'PaperUnit','points'); % unit for the property PaperSize
set(gcf,'PaperSize',size);

这会将要导出的“纸张”.eps的大小设置为屏幕上显示的图形的大小。

如果这不起作用,您可以尝试使用PaperSize或其他“纸张”相关属性。Figure Properties文档页面提供了有关属性的更多信息。

希望这可以帮助!

于 2012-02-16T09:07:36.640 回答
2

前一个建议部分正确。这是我所做的:

  1. 将图形和纸张单位都设置为相同的度量(图形有像素,而不是点!)

    set(gcf,'Units','points')
    set(gcf,'PaperUnits','points') 
    
  2. 做和之前建议的一样:

    size = get(gcf,'Position');
    size = size(3:4);
    set(gcf,'PaperSize',size)
    
  3. 现在的问题是,它可能会从纸上移开,就像我的情况一样,所以把它放回去

    set(gcf,'PaperPosition',[0,0,size(1),size(2)])
    

我不确定 [0,0] 的偏移量,但什么是单点截断:)

于 2012-06-13T13:15:56.123 回答
0

试试这个把你的文件保存到filename.eps

set(gcf,'Units','points')
set(gcf,'PaperUnits','points')
size = get(gcf,'Position');

size = size(3:4);
set(gcf,'PaperSize',size)
set(gcf,'PaperPosition',[0,0,size(1),size(2)])

print(gcf,'filename','-depsc','-loose'); % Save figure as .eps file
于 2016-04-12T22:38:36.753 回答