How to Draw a Line Between Two Points on Different Axes
11 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a small plot inlaid on a larger plot. Of course, each plot has its own set of axes. Is there a way to draw a line connecting a point on the first plot with a point on the second plot?
2 commentaires
dpb
le 20 Juil 2018
Hmmm....interesting question! :)
Haven't actually tried to solve that one but it's tied into how the 'position' property of the secondary axes is set compared to the primary and then the difference between the coordinate systems of the canvas and the axes...there's a discussion under the graphics objects section that shows how that's all intertwined...
Good luck, if somebody else doesn't solve it first, I'll try to get back later on after meetings...
Réponses (1)
Kelly Kearney
le 20 Juil 2018
h.ax(1) = axes('position', [0.1 0.1 0.8 0.8]);
h.ax(2) = axes('position', [0.8 0.1 0.1 0.1]);
x = 1:10;
y = x.^2;
plot(h.ax(1), x,y);
plot(h.ax(2), x,y);
set(gcf, 'units', 'normalized');
axes(h.ax(1));
[xfig(1), yfig(1)] = axescoord2figurecoord(x(5), y(5));
axes(h.ax(2));
[xfig(2), yfig(2)] = axescoord2figurecoord(x(5), y(5));
annotation('line', xfig, yfig);
1 commentaire
VIVEK RUHELA
le 26 Fév 2019
Modifié(e) : VIVEK RUHELA
le 26 Fév 2019
@Kelly Kearney : This code is not working and I am not able to reproduce the results given by you. The smaller axes is hidden behind the bigger one. How to put it on front. Thanks.
Voir également
Catégories
En savoir plus sur Annotations dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!