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

 채택된 답변

Florian Bidaud
Florian Bidaud 2023년 8월 21일
p = plot([0:5],[1:6])
for i = 1:6
datatipsX(i) = p.Children(i).X;
datatipsY(i) = p.Children(i).Y;
end

댓글 수: 10

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 2023년 8월 21일
편집: Florian Bidaud 2023년 8월 21일
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 2023년 8월 22일
편집: Florian Bidaud 2023년 8월 22일
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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Creating, Deleting, and Querying Graphics Objects에 대해 자세히 알아보기

제품

릴리스

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by