관련 정보를 기록 할 때 색상이 변경 축. GIF 파일을 쓰는 데 문제가 없지만, PowerPoint에서 재생하거나 OS X Finder에서 미리 볼 때 축 레이블의 색상이 바뀝니다. 색상 변경 외에도 다음과 같은 경고가 표시됩니다.MATLAB은 GIF에게
경고 : 이미지 데이터에 범위를 벗어난 값이 포함되어 있습니다. 범위를 벗어나는 값은 가장 가까운 유효 값이 부여됩니다.
현재 디렉토리의 모든 데이터 파일을 가져 와서 플롯하고 각 프레임을 잡고 GIF에 넣습니다. 여기 내 코드는 다음과 같습니다.
%Create MATLAB movie from plots
clearvars
%addpath('C:\Users\ucmuser\Documents\MATLAB')
filename='cooldown_movie.gif';
ext_in='txt';
[~,listing]=f_search(ext_in);
[r,~]=size(listing);
listing=natsortfiles(listing);
F=figure;
%r=20 is used for quick debugging (original is 460 files).
r=20;
% y=linspace(1,2*pi,100);
% x=linspace(1,100,100);
%C(1,1,1,r)=0;
for i=1:r
A=dlmread(listing{i});
listing{i}=strrep(listing{i},'_','\_');
x=A(1,:); %X Array
y=A(2,:); %Y Array
plot(x./1E9,y.*1E3,'-','LineWidth',1.2,...
'Color',[0.8500 0.3250 0.0980]);
grid off
xlabel('Frequency (GHz)','FontSize',18,'FontWeight','bold')
ylabel('Voltage (mV)','FontSize',18,'FontWeight','bold')
title('Cooldown Movie','FontSize',24,'FontWeight','bold')
G(i)=getframe(gcf);
drawnow
frame = G(i);
% im = frame2im(frame);
[C(:,:,1,i),map] = rgb2ind(frame.cdata,256,'nodither');
% if r == 1;
% imwrite(C,map,filename,'gif','LoopCount',Inf,'DelayTime',0);
% else
% imwrite(C,map,filename,'gif','WriteMode','append','DelayTime',0);
% end
end
imwrite(C,map,filename,'gif','LoopCount',Inf,'DelayTime',0);
샘플 이미지는 다음과 같습니다. 축 레이블의 색상이 바뀝니다. 그리드를 켜면 그레이 스케일 강도가 변하는 그리드의 효과가 더욱 분명 해집니다. 나는 한계를 설정하려고 시도했으나 효과는 여전히 존재합니다.
이것은 아마도 gif의 처리 방법 때문일 수 있습니다. 축이 끊임없이 변화하지 않도록'xlim'과'ylim'을 수동으로 지정해 보셨습니까? 동영상을 정리해야합니다. – Suever
예 한계 설정을 시도했지만 도움이되지 않습니다. –
축 제한을 설정하면 그림에 색상 효과가 깜박입니다. –