Matlab:保存到eps和jpg时,带“set”的绘图选项失败

时间:2016-07-05 08:57:41

标签: matlab plot save set

我使用脚本来获得自动数据处理(多项式插值,切线,...),但是当我在保存之前使用函数集更改我的绘图选项时,我并不总是得到正确的结果:只有字体选项(见代码)似乎工作,而图像非常小,背景颜色不会改变。

我想要的是同时使用我使用的绘图选项的eps和jpg文件。编写这个脚本时,我一直在添加/移动绘图选项,我真的不明白为什么有时会在绘图上出现一些选项,但在保存时似乎会被忽略。

以下是我的代码中包含所有绘图选项的部分,我添加了这三个第一行而不是我所有的处理。

t=linspace(0,10,10);
front=rand(1,10);
fit=front+rand(1,10)/2;
degre=1;

plot(t,fit,'-b','LineWidth',2);
hold on
grid on
plot(t,front,'.r','LineWidth',2);
hold off
l=legend({['Interpolation polynomiale de degre ',num2str(degre)],'Resultats experimentaux'});
set(l,'Color',[0.8 0.8 0.8])
set(gca,'FontSize',12,'FontWeight','bold','Color',[0.8 0.8 0.8]);
set(gcf, 'Units', 'pixels', 'Position', [0, 0, 1200, 1000])
xlabel('\fontsize{14}Temps de maintien (en s)')
ylabel('\fontsize{14}Distance parcourue (en mm)');
str='essai';
title(str)

filename='essai1';
saveas(gcf,filename,'jpg')
saveas(gcf,filename,'epsc2')

尝试修复分辨率问题,我尝试使用set(0, 'DefaultFigurePosition', [0 0 1200 1000]);更改默认分辨率,但这行代码不会改变任何内容

提前谢谢

2 个答案:

答案 0 :(得分:0)

除非您将InvertHardcopy设置为关闭并且尺寸设置为“PaperPositionMode'

”,否则保存图像的背景将为白色
set(gcf,'InvertHardcopy','off');
set(gcf,'PaperPositionMode','auto');
set(gcf,'Position', [0, 0, 2400, 2000]); %the resoultion you want

答案 1 :(得分:0)

我设法使用

解决了我的示例脚本中的两个问题

hFig = figure(1); set(hFig, 'Position', [0 0 1200 1000])

之前的“情节”和

l=legend({['Interpolation polynomiale de degre ',num2str(degre)],'Resultats experimentaux'}); set(l,'Color',[0.8 0.8 0.8]) set(gca,'FontSize',12,'FontWeight','bold','Color',[0.8 0.8 0.8]); set(gcf,'InvertHardcopy','off');

在情节和情节选项之间。

  

然而,这不适用于我的主要代码,我试图评论我的大部分非重要的情节选项,看看会发生什么。   如果有人可以让我更好地理解这些选项是如何工作的,那将是很好的,我主要通过尝试和错误进行编码,但这不是最有效的方法。

编辑我解决了我的问题,我在同一个数字上有4个图,我刚写了hold all而不是hold on 看看Matlab帮助,这应该不起作用,但确实如此。

  

持有所有与持有相同。   注意:此语法将在以后的版本中删除。请改用hold。

如果有人解释为什么会有效,我想了解发生了什么。 谢谢