Datatip

조회 수: 14 (최근 30일)
Slobodan Djordjevi?
Slobodan Djordjevi? 2011년 12월 12일
답변: Thomas Flick 2018년 5월 31일
Hello!
I have a question regarding datatip on my GUI graph. Everytime I run my GUI and select Data Cursor I have to right click on graph and select my datatip file. The graph opens up the default one(X : xxxx, Y : yyyy). Mine shows date and mass. It's just a bit annoying opening up everytime... Can I change this by making it default for this GUI file?
Thank you in advance!

채택된 답변

Fangjun Jiang
Fangjun Jiang 2011년 12월 12일
I assume you have your data tip function, you can set it when you enable the data cursor mode.
%%Original data
f=figure;
h=plot(rand(10,1));
dcm=datacursormode(f);
datacursormode on;
set(dcm,'updatefcn',@MyDataTipFunction);
  댓글 수: 4
Slobodan Djordjevi?
Slobodan Djordjevi? 2011년 12월 12일
I'm sorry. I don't understand this. In my data cursor file/function, I have figure and plot. I should leave that alone, cause it is working if I plot(rand(5))... But in Gui if I let plot(...) be just plot, nothing happens... I'm a bit disoriented... :) thanks for the help by the way...
Fangjun Jiang
Fangjun Jiang 2011년 12월 12일
Your GUI graph is already a figure. So when you enable its data cursor mode, you need to get the handle of your GUI graph, then do the dcm=datacursormode(FigureHandle) and then set(dcm,...).

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

추가 답변 (3개)

Slobodan Djordjevi?
Slobodan Djordjevi? 2011년 12월 12일
If I understand correctly, my GUI's name is goliGUI = FigureHandle
function datumplot(varargin)
goliGUI = figure
plot(varargin{:})
dcm = datacursormode(goliGUI);
datacursormode on
set(dcm, 'updatefcn', @myfunction)
function output_txt = myfunction(obj,event_obj... *etc*.
File's name is datumplot.m.
  댓글 수: 3
Slobodan Djordjevi?
Slobodan Djordjevi? 2011년 12월 13일
So I have to go to my GUI and replace plot with datumplot and it should work?
Slobodan Djordjevi?
Slobodan Djordjevi? 2011년 12월 13일
If I do this, my GUI creates a separate window(Figure1) and data cursor is on and shown correctly. How do I keep it in my GUI? Walter said something about not to use figure?

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


Slobodan Djordjevi?
Slobodan Djordjevi? 2011년 12월 13일
I did it...
Now I understand. My GUI is a figure itself. So my code now works and looks like this :
function datumplot(varargin)
fh = goliGUI
plot(varargin{:})
dcm = datacursormode(fh);
datacursormode on
set(dcm, 'updatefcn', @myfunction)
function output_txt = myfunction(obj,event_obj)...etc.
Thank you Walter and Fangjun, you really helped me.

Thomas Flick
Thomas Flick 2018년 5월 31일
This is an old post but as far as I can tell the problem has not been satisfactorily solved in that there is no proposed solution that is as easy as setting a default. Here is one that is that easy:
(1) Make a new shortcut or favorite. This requires a fairly new version of Matlab.
(2) Copy/paste this code into your favorite:
dcm=datacursormode(gcf);
datacursormode on;
set(dcm,'updatefcn',@MyDataTipFunction);
(3) While viewing your plot, click on your "favorite" button. This puts the plot in data cursor mode using your data tip function.

카테고리

Help CenterFile Exchange에서 Specifying Target for Graphics Output에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by