Matlab提供了强大的函数集合,可以从.fig文件中读取图中的数据,并重新绘制图形。如果原始数据丢失,我们可以从.fig文件中恢复原始数据,并基于原始数据做进一步的处理。
以下是一个从两个不同文件中读取原始数据,并重新绘制图形的例子。
h1 = openfig('1.fig','reuse'); % open figure
D1=get(gca,'Children'); %get the handle of the line object
XData1=get(D1,'XData'); %get the x data
YData1=get(D1,'YData'); %get the y data
Data1=[XData1' YData1']; %join the x and y data on one array nx2
h2 = openfig('2.fig','reuse'); % open figure
D2=get(gca,'Children'); %get the handle of the line object
XData2=get(D2,'XData'); %get the x data
YData2=get(D2,'YData'); %get the y data
Data2=[XData2' YData2']; %join the x and y data on one array nx2
figure;
plot( XData1{1}, YData1{3}, 'r-o', XData1{1}, YData1{2}, 'r--^', XData1{1}, YData1{1},'r-d', XData1{1}, YData2{3}, 'b-o', XData1{1}, YData2{2}, 'b--^', XData1{1}, YData2{1},'b-d','linewidth',1.5,'markersize',8);
legend('a','b','c','d','e','f');
xlabel('Number','fontsize',12);
ylabel('overhead','fontsize',12);
title('number and overhead')