matlab,print()函数生成一个没有Y渐近数据的png文件

时间:2012-06-12 08:33:41

标签: matlab printing plot

我目前正在使用Matlab脚本绘制函数并将其数据打印到png文件中,但我在最后阶段遇到了问题。

事实是,从绘图图像移动到png文件,一些数据点消失了。 这是我的照片。

Matlab(正确)绘制的内容(注意最大值为(0; 7.7)): enter image description here

以下是Matlab打印到文件中的内容: enter image description here

请注意,Y渐近线中的所有点都丢失了!

为什么会这样?

这是我的代码:

grafico2D('filename.dat', -1);

...

function [result] = grafico2D(filename, max_X)
% function that loads data from a two-column file and plot them in 2D image
close all;

dati = load(filename); % load data from file
X = dati(:,1); % X axis
Y = dati(:,2); % Y axis

temp = size(X);
lungX = temp(1);

hFig = figure();
set(hFig, 'Visible', 'on');

plot(X, Y, 'red'); 
hold on;
ylim([0 1]); 

if(max_X==-1) 
    xlim([1 X(lungX)]); 
else
    xlim([1 max_X]);
end

xlim

title(strrep(filename,'_','\_')); % substitute _ with \_
xlabel('annotation prediction position'), ylabel('likelihood');
grid


 print(hFig, '-dpng', filename); % stampa su file
% }

result = 1;

end

有人可以帮助我吗? 谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用-r选项增加图像的分辨率,该选项指定以每英寸点数为单位的分辨率(默认为90)。它应该解决你的问题(至少它对我有用)。请参阅Matlab print函数documentation

PS:您还可以使用line property LineWidth的粗线。

答案 1 :(得分:0)

您可以稍微扩展x限制:

xlim(xlim() - [0.05 0])