保存的EPS图像与绘制图表不同

时间:2010-02-17 12:29:47

标签: matlab image save

我在matlab中创建了一些图,然后将其保存为EPS图像。

重要的是,我创建了4组图像,从第一张图像中取出“YLim”值,然后将其设置为其他3张图像。我这样做是为了对集合中的每个图像强制使用相同的Y轴限制。

因此,对于第一张图片,我会创建一些图形,在其上绘制一些图形,并将其视为YLim属性:

    f = figure('position', [50, 70, 900, 700], 'Units', 'normalized'); 
    p = plot(s+n, 'k');
    set(gca, 'XLim', [0, 2048]);
    set(gca, 'XTick', 200:400:1800);

    ylim = get(gca, 'YLim');

    saveas(gcf, 'some_name', 'epsc');

然后,对于接下来的3个图像,我还创建了图形,绘制了一些内容,并设置了所有需要的属性:

    f = figure('position', [50, 70, 900, 700], 'Units', 'normalized'); 
    p = plot(s, 'k');
    set(gca, 'XLim', [0, 2048]);
    set(gca, 'XTick', 200:400:1800);

    set(gca, 'YLim', ylim)

    saveas(gcf, 'some_other_name', 'epsc');

现在,奇怪的是什么。 Matlab正确显示这些图像,并且所有图像都具有相同的Y轴限制(例如-10:60)

但保存的EPS文件有不同的限制,例如,第一个有-10:60但第二个有-20:60。因此,换句话说,保存的EPS文件与显示的图表不完全相同。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

我只是将sn定义为rand(2048,1)复制/粘贴您的代码,我发现保存的EPS文件没有任何问题;正如预期的那样,y范围是[0,2] ......

首先请务必仔细检查您的实际代码,然后您可以尝试将PaperPositionMode属性设置为auto

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

启用WYSIWYG打印数字。

PS:您的数字似乎正在使用像素位置,这与指定的“标准化”单位相矛盾,但这与您的问题无关。