Datatip

16 ビュー (過去 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 Center および File ExchangeSpecifying 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