MATLAB只打印我的数字的一部分

时间:2012-07-05 09:12:43

标签: matlab matlab-figure figure

我正试图在MATLAB中打印我的身材,但它一直搞砸了,我不明白为什么。

opslaan = figure(1);
        plot(1:handles.aantal,handles.nauw,'-r','LineWidth',1.5);
        xlabel(gca,sprintf('Framenummer (%g ms per frame)',60/handles.aantal));
        ylabel(gca,'dB');
        set(gca,'YGrid','on');
        yAsMax = ceil( ceil(max(handles.nauw)) / 2) * 2;
        axis([0 handles.aantal 0 yAsMax]);
        pause(1);
        print -dpng image.png 

第一行只是在我的图上绘制数据,然后标记x和y,打开网格并像我想要的那样计算y轴。这一切都很有效,MATLAB在图窗口中显示它就像我想要的那样。当保存到.png / .jpeg / .eps时,它出错了,只打印左下角(473x355像素),其余的都消失了。

通过文件手动导出时 - > 另存为,它可以正常工作。

我该如何解决?

2 个答案:

答案 0 :(得分:3)

帖子 Making Pretty Graphs 包含一个很好的教程,介绍如何从MATLAB数字生成出版物就绪图像。

通常,以编程方式将图形打印到图像文件应包含以下步骤。

% Some data to be plotted
t1 = 0:0.1:4*pi ;
t2 = 0:0.01:4*pi ;
f1 = sin(t1) + randn(size(t1))/10 ;
f2 = sin(t2) + cos(t2.^2)/10 + randn(size(t2))/100 ;

% Define the styles to be used
linstyle_11 = {'LineStyle','--','Color',[.3 .6 .6],'LineWidth',1} ;
linstyle_12 = {'LineStyle','o','Color',[.3 .6 .6],'LineWidth',2,'MarkerSize',8,'MarkerFaceColor','m'} ;
linstyle_2 = {'Color',[.6 .3 .6],'LineWidth',3} ;
titleprops = {'FontSize',24,'FontWeight','bold',...
    'FontName','FixedWidth','FontAngle','oblique',...
    'Interpreter','None'} ;
axisprops = {'FontSize',20,'FontWeight','normal','FontName','FixedWidth'} ;
ylim_s = [-2 2] ;

% Set up the figure for PNG/JPEG export
canvas = [1 1 2048 1024] ;
fh = figure(1);
set( fh, ...
    'PaperPositionMode','auto', ...
    'Position',canvas ) ;

% Do the plotting and apply styles
ha1 = subplot(2,1,1);
hp11 = plot(t1,f1);
hold on
hp12 = plot(t1,f1);
hold off
title('subplot 1',titleprops{:})
xlabel('t',titleprops{:})
ylabel('f1',titleprops{:})

ha2 = subplot(2,1,2);
hp2 = plot(t2,f2);
title('subplot 2',titleprops{:})
xlabel('t',titleprops{:})
ylabel('f2',titleprops{:})

% finish appliing styles
set(hp11,linstyle_11{:}) ;
set(hp12,linstyle_12{:}) ;
set(hp2,linstyle_2{:}) ;
set(ha1,axisprops{:}) ;
set(ha2,axisprops{:}) ;

% Print
outfname = 'test' ;
print(fh,'-dpng',[outfname,'.png']) ;

% Sometimes it's better to use vector graphics ==>
% alter figure properties to allow proper PDF printouts.
set( fh, ...
        'PaperSize', [29.71 13.01], ...
        'PaperPosition', [0.01 0.01 29.7 13.0] ) ;

% print to pdf file
print(fh,'-dpdf',[outfname,'.pdf']) ;

答案 1 :(得分:1)

尝试使用以下行代替您已有的打印行。

print(opslaan,' - dpng','image.png')

另一个选择是调查imwrite