Search code examples
matlabuser-interfacecustomizationfigure

MATLAB: Permanently set "Text Update Function" for Data Cursor in figures


Problem: I use MATLAB for science, and I often need more than 4 significant digits. Every time I use Data Cursor in a figure's GUI, I need to manually right-click on the point, Select Text Update Function... or Edit Text Update Function..., and navigate to the folder where I saved the function whose callback prints more than 4 (e.g. 8) significant figures. This is annoying and there should be a way to automatically change this.

Ideal answer: I want this done permanently for all figures, e.g. in a function that changes default settings in my startup.m file.

Good enough answer: I want a wrapped function to which I give the figure handle and it fixes this for me.

I humbly await SO's infinite wisdom.


Solution

  • The permanent solution

    would be, to edit the default_getDatatipText.m function. You can find it in:

    C:\...\MATLAB\R20xxx\toolbox\matlab\graphics\@graphics\@datacursor
    

    There you will find the line:

    DEFAULT_DIGITS = 4;  % Display 4 digits of x,y position
    

    Edit it as desired, you can't do much harm, but make a backup before if you want.

    Alternative solution:

    There is also the possibility of custom data tips: Tutorial at Matlab Central

    It could finally look like this:

    enter image description here

    (additional text outside data-tips was post-processed)


    And as you're talking about precision. The data-tip always snaps to the closest data-point. It doesn't show interpolated data at the clicked position.