connect lines on scatter plot showing arrows

Hi,
I am plotting 2 scatter plots on the same figure with corresponding points. I would like to connect each pair of points with an arrow towards the second. Here is my code so far
figure; scatter(xpre,ypre,'filled','SizeData',100,'MarkerEdgeColor',[0 0 0],'MarkerFaceColor',[.4940 .1840 .5560]);hold on;scatter(xpost,ypost,'filled','SizeData',100,'MarkerEdgeColor',[.9290 .6940 .1250],'MarkerFaceColor',[.9290 .6940 .1250]);hold on
for i = 1:22
plot([xpre(i,:) xpost(i,:)],[ypre(i,:) ypost(i,:)],'-->','Color',[0 0 0],'LineWidth',2);
end
However I get the attached figure. Grateful for any assistance. Thank you!

 Accepted Answer

Try this
quiver(xpre, ypre, xpost-xpre, ypost-ypre, 'off')

7 Comments

Thanks- I'm getting this error
Error using quiver (line 44)
Uneven parameter-value pairs.
Not sure why... Thanks
You might have an older MATLAB, replace 'off' with 0, or ..., 'AutoScale', 'off'). In any case check the doc of your quiver command.
Thanks- it works but i can't reshape the arrows/arrowheads. It's not really clear from the documentation how do I narrow the arrowheads and make them so they don't overlap with the points?
Make thr arrow 10% shorter
quiver(xpre, ypre, 0.9*(xpost-xpre), 0.9*(ypost-ypre), 'Autoscale', 'off')
Thanks- but I can't figure out how to reshape the arrowheads themselves (i.e., make them smaller )
This is beyond the question you ask, but I'll be nice to do somethibg you could figure out on your own that there is somethig call 'MaxHeadSize'

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2019b

Asked:

on 21 Apr 2022

Commented:

on 21 Apr 2022

Community Treasure Hunt

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

Start Hunting!