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

0 个投票

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 个评论

I did all you said and what the tutorial has shown me, but when applied in my GUI it separately opens a figure. It works nicely, but not quite in my application.
Do not use the "figure" command when you adapt the code for your own use. Or that particular plot() command either ;-)
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

0 个投票

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 个评论

Fangjun Jiang
Fangjun Jiang 2011-12-12
It looks right. Anything wrong?
So I have to go to my GUI and replace plot with datumplot and it should work?
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

0 个投票

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

0 个投票

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.

类别

在 帮助中心 和 File Exchange 中查找有关 Startup and Shutdown 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by