Why is one of my tiled plots not being displayed? MATLAB UI App Designer
23 views (last 30 days)
Show older comments
Kyle McLaughlin
on 20 Jan 2021
Answered: Kyle McLaughlin
on 20 Jan 2021
Hi there,
I am new to the App Designer and am trying to make an app out of existing code of mine. I have 4 tiled plots in a panel in my UI, where 3 are properly displayed while the 4th is not. The title and axis lables are displayed for the 4th graph but not the curve. In trouble shooting, I have writen a line to display the 4th graph in its own figure window, and it works and is plotted as I expect. I am not sure why I cannot get it to plot in the UI. I have included a screen shot of the graphs as well as my code for this section.
Any help would be appreciated!
%collecting displacement data into single matrix
Cam_Displacement = [Rise_Segment, dwellA, Fall_Segment, dwellB];
%differentiation
%works fine
theta = linspace(0,360,length(Cam_Displacement));
velocity = diff(Cam_Displacement(:))./diff(theta(1:length(theta)-1));
acceleration = diff(velocity)./ diff(theta(1:length(theta)-1));
jerk = diff(acceleration)./diff(theta(1:length(theta)-1));
%prints polar plot to panel in UI
%works fine
p = polaraxes(app.CamProfilePanel);
polarplot(p,Cam_Displacement)
%Plotting SVAJ curves
t = tiledlayout(app.SVAJPlotsPanel,4,1);
%works fine
ax1 = nexttile(t);
plot(ax1,theta,Cam_Displacement,'b')
axis auto;
xlim(ax1,[0 360]);
xlabel(ax1,'Degrees');
ylabel(ax1,'in');
title(ax1,'Displacement');
%works fine
ax2 = nexttile(t);
plot(ax2,theta(1:length(theta)-1),velocity,'r');
axis auto;
xlim(ax2,[0 360]);
title(ax2,'Velocity')
ylabel(ax2,'in/sec')
xlabel(ax2,'Degrees')
%works fine
ax3 = nexttile(t);
plot(ax3,theta(1:length(theta)-2),acceleration,'g');
axis auto;
xlim(ax3,[0 360]);
title(ax3,'Acceleration');
ylabel(ax3,'in/sec^2');
xlabel(ax3,'Degrees');
%this is the plot that I am not getting to show up
ax4 = nexttile(t);
plot(theta(1:length(theta)-3),jerk,'c')
axis auto;
xlim(ax4,[0 360]);
title(ax4,'Jerk')
ylabel(ax4,'in/sec^3')
xlabel(ax4,'Degrees')
%this is the validation plot which shows up correctly in its own figure
figure(1)
plot(jerk)
Here are the images of what my program is outputting. As you can see there is no curve in the jerk plot:
This is my standalone plot which is working as expected:
Perhapse this is a very simple mistake and I am just missing something in my code. Thanks again.
Accepted Answer
Adam Danz
on 20 Jan 2021
plot(ax4,theta(1:length(theta)-3),jerk,'c')
% ^^^ you forgot this part
0 Comments
More Answers (1)
See Also
Categories
Find more on 2-D and 3-D Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!