Azzera filtri
Azzera filtri

connecting lines between adjacent scatter plots

19 visualizzazioni (ultimi 30 giorni)
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?

Risposta accettata

Voss
Voss il 27 Mag 2022
"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 Commento
Steve
Steve il 28 Mag 2022
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.

Accedi per commentare.

Più risposte (0)

Prodotti


Release

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by