Can I extract XY data from a figure and sort it by the color of the datapoints?

13 views (last 30 days)
Jacob Blumeier
Jacob Blumeier on 28 Nov 2020
Answered: Amrtanshu Raj on 1 Dec 2020
I have a figure that is shown below, where the data is either red or blue. I need to extract the XY data from this figure and seperate the red data from the blue data. Is there a piece of MATLAB code that can extract just the data that corresponds to a certain property of the datapoints? While its hard to notice in the image, the circles representing the red data are also a different size from the blue data, so I could sort them by size too if it's easier.

Sign in to comment.

Answers (1)

Amrtanshu Raj
Amrtanshu Raj on 1 Dec 2020
Since you have a .fig file, the following code will help you get back the datapoints. This is the basic structure, you may have to tweak it a little based on the original method used to plot it.
%lets say your figure is name fig2dataset.fig
fig = openfig('fig2dataset.fig'); %load the figure back to matlab
k = fig.Children.Children; %get the children of the figure file ie. the datapoints
for i = 1:size(k,1) %itterate to all the lines plotted
for j = 1:length(k(i).XData)
disp([k(i).XData(j) k(i).YData(j)])%disp the X and Y data points


Community Treasure Hunt

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

Start Hunting!