Extract data from figure with multiple axes

조회 수: 14 (최근 30일)
Chris
Chris 2019년 8월 6일
댓글: dpb 2019년 8월 6일
Hi,
I want to extract data from a figure which I have created using "tightplot" ( https://uk.mathworks.com/matlabcentral/fileexchange/45380-tightplots ). The function generates different cooradinate systems using axes.
I now want to extract the data from the figures. I tried this ( https://uk.mathworks.com/matlabcentral/answers/177990-how-do-i-pull-data-from-a-figure-with-multiple-plots ) but it does not work.
Here is an example of the figure:
figure;
ha=tight_subplot(2,2,0.08,[0.1000,0.0250],[0.08,0.025]);
%plot1
axes(ha(1));
plot(1:10);
%plot2
axes(ha(2));
plot(-1:-1:-10);
%plot3
axes(ha(3));
plot(1:10);
%plot4
axes(ha(4));
plot(-1:-1:-10);
  댓글 수: 2
Adam
Adam 2019년 8월 6일
Do you not have the original data any more? It's a lot easier to keep the actual data than to start extracting it from plots. I haven't used tightplots, but its outputs appear to be all the axes handles so surely it is just a case of getting XData, YData, CData or whatever you want from each of these axes handles?
dpb
dpb 2019년 8월 6일
Agree w/ Adam; just iterate through the hA array, retrieving the .Children handle(s) for each and then the subsequent .X|YData thereof.
Or, you could use findobj to get the 'Line' objects for the axes; eeny-meeny which way to go...

댓글을 달려면 로그인하십시오.

채택된 답변

Chris
Chris 2019년 8월 6일
I am not quite sure what you mean. Can you give an example?
  댓글 수: 3
Chris
Chris 2019년 8월 6일
Thanks! Got it. And how can I get the ha, if I only have the figuere?
dpb
dpb 2019년 8월 6일
Not very adventurous, are you??? :)
hF=gcf;
hAx=hF.Children; % presuming there are axes extant, of course
or,
hAx=findobj(hF,'Type','axes');

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Creating, Deleting, and Querying Graphics Objects에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by