UIAxes Data Tip interaction

18 次查看(过去 30 天)
Hello, I recently updated from 2019b (2021b now) and I wanted to use the new support for datacursormode in UIAxes.
With a standard figure I can move the data tip label around the point snapped (NE, NW, SW, SE) and I can also drag the data tip along the plotted curve to adjust its position.
Is it possible to replicate this behavior for UIAxes plots?
I can only enable datacursormode in UIAxes but then I can produce data tips that can only be deleted and repositioned and not interactively dragged along the curve.
Also:
I would like to change the pointer from standard "arrow" to "circle" when inside the uiAxes, I did it with enter/exit function, but the datacursor mode overwrites the bavior and displays the standard "cross"
The code looks like this
function startupFcn(app)
datacursormode(app.MyApp, 'on');
pm.enterFcn = @(~,~) set(app.MyApp, 'Pointer', 'circle');
pm.exitFcn = @(~,~) set(app.MyApp, 'Pointer', 'arrow');
pm.traverseFcn = [];
iptSetPointerBehavior(app.UIAxes, pm)
iptPointerManager(app.MyApp,'enable');
end
with no datacursor mode it works, with datacursor 'on' it displays "cross"
Thanks

采纳的回答

Kevin Holly
Kevin Holly 2022-10-31
编辑:Kevin Holly 2022-10-31
You could change line 450 in datacursormode
from
setptr(gcf,'datacursor')
to
setptr(gcf,'circle')
or just comment out the line.
Edit: As for moving/repositioning the datatips, it works for me in R2022b, but I have the same issue in R2021b.
  2 个评论
Daniele Crimella
Daniele Crimella 2022-10-31
Thanks for the answer. This does solve the problem on my machine, but how about sharing the app as standalone with other users, will they still see the "arrow" cursor?
I could insert a copy of datacursor function (datacursorMOD for example) inside my app and call that instead of the native one, but it seems a bit too extreme to do that only modify a cursor (if it is the only way, I will do that for sure).
Thanks for the investigation on R2021b so I won't loose time searching for a fix as it seems to be related to the release itself.
Kevin Holly
Kevin Holly 2022-10-31
Creating a modified copy of the datacursor function was the route I would have recommended. Generally, the standalone executable should have the same functionality as before you compiled.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Introduction to Installation and Licensing 的更多信息

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by