Spooky Graphed Data?

Data tip doesn't match Yaxis or actual data. Actual data is 1073741824.
Can anyone explain this?

Respuestas (2)

dpb
dpb el 31 de Oct. de 2025

0 votos

Longstanding behavior -- the datatip values are rounded to some (as far as I know an unspecified) number of significant digits; probably for cleanliness of display considerations.
Fangjun Jiang
Fangjun Jiang el 31 de Oct. de 2025
Editada: Fangjun Jiang el 31 de Oct. de 2025
a=plot(1073741820:1073741829);
datatip(a);
c=a.DataTipTemplate;
c.DataTipRows(2).Format
ans = 'auto'
c.DataTipRows(2).Format='%d';

5 comentarios

dpb
dpb el 31 de Oct. de 2025
I don't know if one can change the template for the axis callback datatip, though???
dpb
dpb el 31 de Oct. de 2025
Editada: dpb el 31 de Oct. de 2025
a=plot(1073741820:1073741829);
%datatip(a);
c=a.DataTipTemplate
c =
DataTipTemplate with properties: DataTipRows: [2×1 matlab.graphics.datatip.DataTipTextRow] Interpreter: 'tex' FontSize: 10 FontAngle: 'normal' FontName: 'Helvetica'
And Lo! and behold, the datatip is another of those undocumented and hidden line properties Mathworks doesn't tell us anything about other than the creation programmatically with the datatip function which neglects to mention or link to anything about the default interactive behavior.
Thanks, @Fangjun Jiang, your response made me go try it without creating one and discovered it lurks there all the time.
The default format is 'auto' which undoubtedly transforms into '%g' internally and so
format longg
1073741824
ans =
1073741824
format shortg
1073741824
ans =
1.0737e+09
fprintf('%g\n',1073741824)
1.07374e+09
fprintf('%.6g\n',1073741824)
1.07374e+09
fprintf('%d\n',round(1073741824,-4))
1073740000
So, in fact, it does appear that for some size of values, 'auto' does resort to rounding to a given number of significant digits. Why would seem uncertain.
dpb
dpb el 1 de Nov. de 2025
"... it does appear that for some size of values, 'auto' does resort to rounding ..."
Maybe an enhancement request could be to only round if non-integer value?
Of course, once one knows that one can actually change the interactive behavior, then it's controllable to set the format. I suppose one could also set this as one of the groot conditions either globally or for a given set of figures.
Fangjun Jiang
Fangjun Jiang el 2 de Nov. de 2025
Thank you @dpb for digging it up. I tried and saw the "auto" format and then searched for the other format. That is all I did.
dpb
dpb el 2 de Nov. de 2025
Editada: dpb el 4 de Nov. de 2025
The real contribution was yours to make me curious about whether the interactive callback used the same ptopertiy and then that led to the discovery it is an undocumented and hidden(*) property of every line object.
(*) The actual property .DataTipRows is hidden such that even <Yair Altman's near magical GETUNDOCUMENTED function> doesn't find it which; having never seen it before, had led me to the erroneeous conclusion long ago that it was implemented as an internal callback from the axes and the two weren't really connected at all. Certainly the documentation doesn't provide any hint.
>> HL=plot(rand(10,1); % generate line handle to poke at...
>> U=getundocumented(HL)
U =
struct with fields:
ALimInclude: on
ALimIncludeMode: 'auto'
ALimInclude_I: on
AlignVertexCentersMode: 'auto'
...
CLimInclude_I: on
ChildrenMode: 'auto'
Children_I: [0×0 GraphicsPlaceholder]
ClippingMode: 'auto'
Clipping_I: on
Color_I: [0 0.447 0.741]
Copyable: 1
CreateFcnMode: 'auto'
CreateFcn_I: ''
CreateFcn_IS: '???'
DataTipTemplate_IS: [0×0 GraphicsPlaceholder]
DatetimeTickFormat: ''
DefaultPropMap_Internal: [0×0 struct]
...
>>
reveals only an empty graphics object placeholder; no hint that the actual set of properties are extant and addressable if one does stumble onto the fact they do belong to the lines on the axes.

Iniciar sesión para comentar.

Categorías

Más información sobre Environment and Settings en Centro de ayuda y File Exchange.

Productos

Versión

R2024b

Etiquetas

Preguntada:

el 31 de Oct. de 2025

Editada:

dpb
el 4 de Nov. de 2025

Community Treasure Hunt

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

Start Hunting!

Translated by