1

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 は Figure ウィンドウで希望どおりに表示します。.png / .jpeg / .eps に保存すると、うまくいかず、左下隅 (473x355 ピクセル) だけが印刷され、残りは消えてしまいます。

[ファイル] -> [名前を付けて保存] を使用して手動でエクスポートすると、正しく機能します。

どうすれば修正できますか?

4

2 に答える 2

3

ポストMaking Pretty Graphsには、 MATLAB Figureから出版用の画像を生成する方法についての優れたチュートリアルが含まれています。

一般に、プログラムによって Figure をイメージ ファイルに出力するには、次の手順を含める必要があります。

% 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']) ;
于 2012-07-09T08:44:28.820 に答える
1

既にある print 行の代わりに、次の行を使用してみてください。

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

別のオプションは、を調べることimwriteです。

于 2012-07-05T12:18:27.843 に答える