How to import axesm into app designer?

조회 수: 8 (최근 30일)
abblah abblah
abblah abblah 2020년 3월 17일
댓글: Adam Danz 2023년 10월 2일
Hi,
I am developing a GUI using app designer. This contains multiple UIAxeses.
One of these UIAxeses is going to show site location in map using meshm and plotm functions. How can I convert an existing UIAxes to a map axes? or how can I import a map axes into the app designer?
unfortunately the axesm and worldmap functions open a new figure including a map axes which is not sutible for a standalone application. I have spent a large time for searching with no specific solution :(((

채택된 답변

abblah abblah
abblah abblah 2020년 4월 5일
To import a map axes, it is only sufficient to change the parent of a map axes as follows:
% ... MapAxes is created in a new figure
% Change the Parent of the map axes
TempParent = MapAxes.Parent;
MapAxes.Parent = UIAxes.Parent;
% fit the size
MapAxes.Units = 'pixel';
MapAxes.Position = UIAxes.Position;
% delete the initial temperory UIAxes
delete(UIAxes);
% delete the temperory map figure
delete(TempParent);
  댓글 수: 1
Adam Danz
Adam Danz 2020년 4월 5일
Note some potential problems with this answer:
When you delete app.UIAxes at the end, that handle will be empty and you will not have access to the new axes handle unless you store is as a property of the app. I also recommend changing the units and position properties before changing the parent property. Another improvement would be to create the external figure with visibility off.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Adam Danz
Adam Danz 2020년 3월 17일
편집: Adam Danz 2020년 3월 19일
"...or how can I import a map axes into the app designer?"
You can copy the content of a map axis to a UI Axis. Here's a demo.
% Create map in external figure
korea = load('korea.mat');
Z = korea.map;
R = georasterref('RasterSize', size(Z), ...
'Latlim', [30 45], 'Lonlim', [115 135]);
worldmap(Z, R)
meshm(Z, R)
ax = gca();
% Create UIAxes and copy content
uif = uifigure();
uiax = uiaxes(uif);
copyobj(ax.Children, uiax)
uiax.Visible ='off';
  댓글 수: 4
Tamas
Tamas 2023년 9월 29일
Would you be able to copy also a colorbar and the colormap?
Adam Danz
Adam Danz 2023년 10월 2일
Copy the colormap using
uiax.Colormap = ax.Colormap;
You may also want to copy the CLim property if you made any changes to the color limits.
As for the colorbar, recreate it in the new figure. If there are any important colorbar properties you set in the figure containing the map axes, you can copy the property values between the two colorbars.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Geographic Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by