I'd like to change the default data tip that's displayed on plots in MATLAB R2014+ versions. Before, one could edit the file default_getDatatipText.m and change the number of digits. Now that file no longer exists.
I'd like to change the default behavior instead of changing the datacursor mode to a custom update function.
e.g. I could do something like this: dcm = datacursormode; set(dcm, 'UpdateFcn', @tenDigitTextUpdate)
But I'd rather change the default instead.

답변 (1개)

Joe Vinciguerra
Joe Vinciguerra 2019년 11월 11일

1 개 추천

(courtesy of stackoverflow)
add the following to your startup.m file:
set(0,'defaultFigureCreateFcn',@(s,e)datacursorextra(s))
Create a new M-file in your matlab path called "datacursorextra.m" and insert the following into that file:
function datacursorextra(fig)
% Use current figure as default
if nargin<1
fig = gcf;
end
% Get the figure's datacursormode, and set the update function
h = datacursormode(fig);
set(h,'UpdateFcn',@myupdatefcn)
% The actual update function
function txt = myupdatefcn(~,event)
% Short-hand to write X, Y and if available Z, with 10 digit precision:
lbl = 'XYZ';
txt = arrayfun(@(s,g)sprintf('%s: %.10g',s,g), lbl(1:length(event.Position)), event.Position,'uniformoutput',false);
% If a DataIndex is available, show that also:
info = getCursorInfo(h);
if isfield(info,'DataIndex')
DataIndex = [info.DataIndex];
txt{end+1} = sprintf('Index: %d\n', DataIndex(1));
end
end
end
Change the formatting in line 15 to your liking.

댓글 수: 1

Hannes
Hannes 2020년 5월 13일
This works well and I have been using the startup.m file to customize default settings.
However, this seems to crash the App Designer! (2019b and 2020a)

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

카테고리

도움말 센터 및 File Exchange에서 Graphics Object Properties에 대해 자세히 알아보기

질문:

2016년 1월 4일

댓글:

2020년 5월 13일

Community Treasure Hunt

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

Start Hunting!

Translated by