Показывать всплывающие подсказки в логарифмически масштабированных uiaxes - PullRequest
0 голосов
/ 11 июля 2019

Я столкнулся с проблемой при использовании нового объекта uiaxes: после построения моих данных я могу щелкнуть точки данных, после чего отобразятся подсказки с данными X и Y.Когда я изменяю шкалу моей оси X на логарифмическую, данные не отображаются.

Я использую MATLAB 2019a.

Вот пример кода:

h = uiaxes;
h.XScale = 'log';
a = plot( 1 : 10 );

При изменении масштаба обратно на линейный данные всплывающие подсказки снова будут отображаться правильно.

Я также попробовал приведенную ниже команду для включения подсказок, она работает, но у меня в окне командной строки есть масса предупреждений, говорящихпроизошла ошибка в WindowMouseMotion обратном вызове.

cursorMode = datacursormode(h.Parent);
cursorMode.Enable = 'on'

1 Ответ

2 голосов
/ 11 июля 2019

Проверьте это:

function [] = q56982381()
hF = uifigure(); hAx = uiaxes(hF);
hAx.XScale = 'log';
hP = plot( hAx, 1 : 10 );

% Invoke the datacursor manager:
dcm_obj = datacursormode(hF);
hTip = dcm_obj.createDatatip(hP); % Don't specify any further inputs at this stage

% Wait until the figure loaded:
drawnow; pause(0.1); % or mlapptools.waitForFigureReady(hF); (see note at the bottom)

% Modify the datatip position:
hTip.Position = [2, 2, 0];

Результаты:

enter image description here

mlapptoolsУтилита, соавтором которой я являюсь, предназначена для работы с UIFigures и его настройки.

...