axes Interactions 'restore view' not working properly
12 次查看(过去 30 天)
显示 更早的评论
This problem seems to have been discussed in Answers in March 2019 but it's not clear to me that a satisfactory resolution was reached.
I have uifigure containing a single axes with the properties
.Position = [50 50 512 512];
.XLim = [0 512];
.YLim = [0 512];
The pan and zoom features on the interactions menu work properly on the plotted function. However, on activating the 'Restore View' button the axes limits are changed to
.XLim = [0 500];
.Ylim = [0 500];
This is really irritating and screws up the appearance of the plots. I would like to think that the number 500 is a clue, but I have no idea where it comes from.
Is there a workaround apart from removing the interactions bar?
Gordon
0 个评论
回答(2 个)
Marten Amschler
2021-4-21
I have the same problem. After I activate the "Restore View" button. The XLim, YLim, ZLims will be set to some values that I don't understand where they are coming from. I have an Axes in my GUIDE, that will i update alot (so I plot something; use cla; and plot something else). How can I manually set the values that 'Restore View' would set?
thanks
1 个评论
Gordon Edwards
2021-4-26
Hello Marten
I seem to have made the problem go away, but unfortunately I don't understand why. I have included the code for my plotting function that seems to work - i.e. after using the 'Restore view' button, the x, y limits are identical to the original values. You will note that there no tick marks and this may possibly be relevant, although I'm guessing somewhat. Good luck and I would be glad to hear of any progress in understanding the cause of the problem.
Gordon
function PlotDrawing(app)
% Plot the function app.Plot(1:n,1:2) on the axes app.UIAxes01
% The axes is square, width = height = app.AxesSize
Z = app.Plot; % x,y coords
ax = app.UIAxes01;
cla(ax)
ax.Units = 'pixels';
ax.XTick = [];
ax.YTick = [];
ax.Position = [ax.Position(1:2), app.AxesSize, app.AxesSize];
ax.XLim = [0, app.AxesSize];
ax.YLim = [0, app.AxesSize];
ax.Box = 'on';
ax.Color = app.BackgroundColor;
plot(ax, Z(:,1), Z(:,2), 'Color', app.LineColor)
end
Joshua
2023-4-6
The limits that are used when "Restore View" is activated come from app.UIAxes.InteractionOptions.RestoredXLimits, RestoredYLimits, and RestoredZLimts in app designer. I am not sure in other figures, but there may be a similar property.
This link may provide a more indepth explanation.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Axis Labels 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!