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 件のコメント

Slobodan Djordjevi?
Slobodan Djordjevi? 2011 年 12 月 12 日
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.
Walter Roberson
Walter Roberson 2011 年 12 月 12 日
Do not use the "figure" command when you adapt the code for your own use. Or that particular plot() command either ;-)
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 日

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?
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 日

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