How to plot a graph on a panel in App Designer?
5 次查看(过去 30 天)
显示 更早的评论
Hi.
I have the below app design view, and I would like to plot the same linear graph (y = 1x) on both axes objects, one (UIAxes) is parented to a panel object and the other (UIAxes2) is just on a figure object.

To do this, I have the following callback function startupFcn (executed per app execution).

Then, the execution result is the following; no plot is apprently made on the axes belonging to the panel. Could you tell what was wrong in my code?

1 个评论
Walter Roberson
2024-12-4
Your first diagram makes it look as if the panel is behind an axes. The drawing on top takes priority in App Designer.
采纳的回答
Yukthi S
2024-12-4
I got that you wanted to plot the same linear graph on two different axes:
a) UIAxes inside a panel and
b) UIAxes2 directly on the figure.
But the function you are using attempts to re-parent UIAxes2 to the panel. The below adjustments to the design and code will achieve the desired behaviour.
- Make panel the parent component in the design itself.
- Now switch to Code View and give the below function as the StartupFcn:
function startupFcn(app)
x = 1:1:10; % X data
y = x; % Y data (y = x)
% Plot on UIAxes (inside the Panel)
plot(app.UIAxes, x, y, 'b-', 'LineWidth', 2);
title(app.UIAxes, 'Plot on UIAxes');
xlabel(app.UIAxes, 'X');
ylabel(app.UIAxes, 'Y');
grid(app.UIAxes, 'on');
% Plot on UIAxes2 (directly on the figure)
plot(app.UIAxes2, x, y, 'r--', 'LineWidth', 2);
title(app.UIAxes2, 'Plot on UIAxes2');
xlabel(app.UIAxes2, 'X');
ylabel(app.UIAxes2, 'Y');
grid(app.UIAxes2, 'on');
end
- Save and run the App. You will see the linear plot on UIAxes inside a panel and UIAxes2 directly on the figure.
Hope this addresses the query!
3 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Develop Apps Using App Designer 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!