missing axes after copy
显示 更早的评论
I have a UIAxes in an app that I want to save as a .fig file so I'm using this:
placeholder=figure();
placeax=copyobj(app.UIAxes,placeholder,"legacy");
savefig(placeax,[app.folder,'\Results\',app.model,' - nodeview.fig']);
The new figure is created and the graph is copied across but I can't see it. What I mean by that is when hovering my mouse over I can see that the axes and the points are there but the graphic doesn't show up.

Any suggestions as to why I can't see the graph?
4 个评论
dpb
less than a minute 前
The target is an "ordinary" figure into which you're placing a new UIAxes. Try into a UIFigure instead
Timothy
about 13 hours 前
uifigure uses the newer web-based UI framework (used by App Designer). Its components (uilabel, uibutton, etc.) are not standard graphics objects and cannot be serialized with savefig.
The .mlapp file is effectively the “save format” (UI + logic together).
dpb
about 12 hours 前
Try something on the order of
placeholder=figure('Visible','off');
placeax=copyobj(app.UIAxes.Children,axes(placeholder),'legacy');
savefig(placeholder,fullfile(app.folder,'\Results\',app.model,' - nodeview.fig'));
delete(placeholder); % optional
Nota bene: Untested...
For figures in app developer apps which reside in UIFigure-land, look at exportgraphics
回答(1 个)
dpb
about 12 hours 前
1 个投票
类别
在 帮助中心 和 File Exchange 中查找有关 Printing and Saving 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!