How to plot lines with unordered data points?

12 views (last 30 days)
I have scanned x-y data for different line tracing. When I plot the points as a scatter, it gives a good presentation of the data, as shown in the figure below.
However, I want to separate out the data as different lines. Currently, the points are randomly aligned and the line plot shows a sketchy presentation (as shown in the figure below).
currently, the data are attached as 'xydata.mat' and excel sheet. I cannot find a way out that I can plot the data as three distinct lines. I want to As my data set contains more of these lines (some inclined), separating them out manually will be too much time consuming. Any ideas will be much appreciated.

Accepted Answer

Star Strider
Star Strider on 27 Oct 2022
One approach —
LD = load(websave('xydata','https://www.mathworks.com/matlabcentral/answers/uploaded_files/1171138/xydata.mat'));
T = LD.T;
TS = sortrows(T,1);
idx = [find([diff(TS.x)] > 100); size(T,1)];
s = diff([0; idx]);
C = mat2cell(table2array(TS), s, 2);
figure
hold on
for k = 1:numel(C)
plot(C{k}(:,1), C{k}(:,2))
end
hold off
xlabel('x')
ylabel('y')
.

More Answers (0)

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!