我正试图在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像素),其余的都消失了。
通过文件手动导出时 - > 另存为,它可以正常工作。
我该如何解决?
答案 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
。