Only the initial graph shows up

I'm trying to subplot 2 graphs in the same figure but I'm only getting the first graph. Need help trying to display both graphs
figure;
subplot(2, 1, 1)
plot(frames, Knee_A(:, 1), 'ro-', 'linewidth', 2); hold on;
plot(frames, Knee_A(:, 2), 'go-', 'linewidth', 2);
plot(frames, Knee_A(:, 3), 'bo-', 'linewidth', 2);
xlabel('Fluoroscopic Frame (30 FPS)');
ylabel('Angle (deg)');
legend('Flex/EXT', 'ADD/ABD', 'IR/ER', -1);
title([handles.SubjectName, ' ', handles.SubjectSide, ' ', handles.TrialName, ' Knee Angles']);
subplot(2, 1, 2)
plot(frames, Knee_V_tibia(:, 1), 'ro-', 'linewidth', 2); hold on;
plot(frames, Knee_V_tibia(:, 2), 'go-', 'linewidth', 2);
plot(frames, Knee_V_tibia(:, 3), 'bo-', 'linewidth', 2);
xlabel('Fluoroscopic Frames (30 FPS)');
ylabel('Translation (mm)');
% plot(frames, sum(StemV_cup.^2, 2).^.5, 'ko-', 'linewidth', 2);
title('Knee Translations')
legend('A/P', 'P/D', 'L/M', -1);

1 Comment

Adam Danz
Adam Danz on 5 Aug 2022
Edited: Adam Danz on 5 Aug 2022
Does anything show up where the second subplot should be? An empty axes?
Screenshot of the figure might be helpful, or attaching the data. Knee_V_tibia might be all NaNs or empty.

Sign in to comment.

 Accepted Answer

Jon
Jon on 5 Aug 2022
Edited: Jon on 5 Aug 2022
The problem is that you have an error in your line
Error using legend
Invalid argument. Type 'help legend' for more information.
Error in missingplot (line 11)
legend('Flex/EXT', 'ADD/ABD', 'IR/ER', -1);
Specifically the -1 at the end is not correct. So the script crashes before it ever makes the second subplot.
Note the line number this occurs in for your code is probably not 11, I added a few lines ahead of your script to make up some data. Anyhow, it is the line that has the legend command. Same thing for legend in second subplot

5 Comments

Also obviously your script is not called missingplot, that is just what I called my script that I saved using your code in order to debug it.
@Jon good catch.
@Pete Tuchinda: Lesson learned - pay attention to error messages and always include the full copy-pasted error message in your question.
numbers as the final parameter to legend() used to indicate the plot position. I think -1 corresponded to the current "best" request
So using current MATLAB versions (R2022a)
legend('Flex/EXT', 'ADD/ABD', 'IR/ER','Location','best');
@Jon Thank you! Got it to work now!

Sign in to comment.

More Answers (0)

Categories

Find more on Graphics Performance in Help Center and File Exchange

Products

Release

R2022a

Asked:

PT
on 5 Aug 2022

Commented:

PT
on 6 Aug 2022

Community Treasure Hunt

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

Start Hunting!