Extract data tips values from a plot in app designer

I want to add the X and Y values of data tips to a matrix. How can I do it?
As an example below, I want to create a 3x2 matrix from the data tip X and Y values

 Réponse acceptée

p = plot([0:5],[1:6])
for i = 1:6
datatipsX(i) = p.Children(i).X;
datatipsY(i) = p.Children(i).Y;
end

10 commentaires

Hi, thanks for the answer, this will not work unless I select the data tips and update the code right?
its not working if I copy paste and run
Florian Bidaud
Florian Bidaud le 21 Août 2023
Modifié(e) : Florian Bidaud le 21 Août 2023
Exactly, this extracts the values from the datatips, isn't it what you wanted to get ?
Yes but this is not working. I plot the first line then mark the data tips.
then I run the rest of the code.
But it is throwing error "Index exceeds the number of array elements. Index must not exceed 0."
This must be because your for loop must loop from 1 to your number of datatips. I just put 6 as an example.
I have 2 data tips and Im doing i = 1:2
it is not detecting datatips, its showing as 0
Florian Bidaud
Florian Bidaud le 22 Août 2023
Modifié(e) : Florian Bidaud le 22 Août 2023
Can you show what p.Children returns in the command window ? This is exactly the message you would have if you run this code without having datatips on your plot.
As we see, p.children gives 0x0 even when I have added datatips.
I hope I am doing correctly, I plot it then add data tips and then run the lower part of the code.
I just realised you were using a live script.
When you update a figure in a live script, commands are not automatically added to the script so you need to copy the code and add them, which in your case isn't really neat.
Do you really want to use a live script here or was it just to test the code ?
I was just testing in live script, I want to do this in an app actually.
Otherwise it is working well in a script, thanks. I will accept it as the answer.
Also, Is there a way where we can read the current figure and then identify the datatips?
i tried-
ax = gca; %or gfc
ax.Children
but its not working.
Nice !
In the live script, you can't.
Otherwise, you should be able to do that with ax.Children.Children

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating, Deleting, and Querying Graphics Objects dans Centre d'aide et File Exchange

Produits

Version

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by