connecting lines between adjacent scatter plots

I have four columns of data (X1, X2, Y1, Y2) each with the same number of rows (30). I want to create two scatter plots on the same graph (X1 vs Y1, blue) and (X2 vs Y2, red). Then I want a line that connects connects each blue data point to the red data point that shares the same row... so 30 lines total, each connecting 2 datapoints. How to do this? Does it require a loop?

 Accepted Answer

"Does it require a loop?"
No.
"How to do this?"
% Your data
X1 = rand(30,1);
X2 = rand(30,1);
Y1 = rand(30,1);
Y2 = rand(30,1);
% Your existing scatter plots
scatter(X1,Y1,'b')
hold on
scatter(X2,Y2,'r')
% plotting new lines. NaNs break up the segments
N = numel(X1);
xdata = [X1 X2 NaN(N,1)].';
ydata = [Y1 Y2 NaN(N,1)].';
plot(xdata(:),ydata(:),'g')

1 Comment

Thank you. Fantastic. This is exactly what I was asking for.
Does this method work for adding n scatters? Say for X3 vs Y3 etc. I have ten XY sets that I've collected on different days and I want to connect them in a similar fassion. Perhaps I'll need each connecting line to have a different color and remove the markers for the points and connect them with arrows to show the transition through time.

Sign in to comment.

More Answers (0)

Products

Release

R2022a

Asked:

on 27 May 2022

Commented:

on 28 May 2022

Community Treasure Hunt

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

Start Hunting!