Turn off auto stretch for 3D plot in app designer
22 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
As your orbit a 3D plot, the axes are stretched to fill the figure space. I am trying to fix the axes so they do not stretch the shapes to autofill the space.
Here are some things I have tried
- Changing aspect ratio to manual, [1, 1, 1] in the design view
- Using this snip of code after all elements have been drawn
ax = gca;
props = {'CameraViewAngle','DataAspectRatio','PlotBoxAspectRatio'};
set(ax,props,get(ax,props));
- Using this other snip of code
axis vis3d
- Using this last snip of code
pbaspect(app.axes1, [1 1 1])
Most of these things will work in a normal figure but not in the app designer
Even the documentation here says that making the PlotBoxAspectRatioMode manual should disable the autostretch, but it does not.
Thank you in advance.
0 Commenti
Risposta accettata
Dave B
il 22 Ott 2021
Modificato: Dave B
il 22 Ott 2021
When you have an axes that you made in App Designer, gca won't return your axes. Can you try your set(ax,props,get(ax,props)) approach with app.axes1?
% This test code was effective at disabling stretch-to-fill for me (in
% R2020b) but I'm not sure if some other property on your axes is
% responsible (hard for me to believe that).
ax=uiaxes;
surf(ax,peaks)
props = {'CameraViewAngle','DataAspectRatio','PlotBoxAspectRatio'};
set(ax,props,get(ax,props));
axis vis3d is similar, I think it should work but you have to be explicit about your target: axis(app.axes1,'vis3d')
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Vector Fields in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!