MATLAB Answers

Plotting multiple 3D plots on one graph

256 views (last 30 days)
LB
LB on 2 Oct 2019
Edited: LB on 3 Oct 2019
Hi,
I have the following code. I want to plot all 7 on the same plot. How do I do that?
I tried hold on, but that gives me an empty plot. Thank you!
figure (4)
plot3(cm_willans,pma_1400,pme_e, '-r');
plot3(cm_willans,pma_1900,pme_e, '-m');
plot3(cm_willans,pma_2500,pme_e, '-g');
plot3(cm_willans,pma_3000,pme_e, '-b');
plot3(cm_willans,pma_4200,pme_e, '-k');
plot3(cm_willans,pma_5300,pme_e, '-y');
plot3(cm_willans,pma_6400,pme_e, '-c');
grid on
hold on
xlabel('Cm in m/s')
ylabel('Pma in Pascals')
zlabel('Pme in Pascals')
Also, secondary question: How do I create a legend for each one of those lines? Thanks

  0 Comments

Sign in to comment.

Accepted Answer

Shubham Gupta
Shubham Gupta on 2 Oct 2019
Try :
figure (4)
grid on
hold on % Hold position should be at the start of plotting to overlap plots
plot3(cm_willans,pma_1400,pme_e, '-r','DisplayName','legend-1');
plot3(cm_willans,pma_1900,pme_e, '-m','DisplayName','legend-2');
plot3(cm_willans,pma_2500,pme_e, '-g','DisplayName','legend-3');
plot3(cm_willans,pma_3000,pme_e, '-b','DisplayName','legend-4');
plot3(cm_willans,pma_4200,pme_e, '-k','DisplayName','legend-5');
plot3(cm_willans,pma_5300,pme_e, '-y','DisplayName','legend-6');
plot3(cm_willans,pma_6400,pme_e, '-c','DisplayName','legend-7'); % DisplayName property to set legend name
xlabel('Cm in m/s')
ylabel('Pma in Pascals')
zlabel('Pme in Pascals')
legend show
Hope it helps !

  5 Comments

Show 2 older comments
LB
LB on 2 Oct 2019
Hi Shubham,
Thank you very much! That worked above! Another quick question: All my lines overlay on top of each other, graph attached. How do I make them show side by side and not on top of each other?
Thanks
Shubham Gupta
Shubham Gupta on 3 Oct 2019
Use subplot to create subplots on the plot. Try :
figure;
subplot(171)
plot3(cm_willans,pma_1400,pme_e, '-r','DisplayName','legend-1');
xlabel('Cm in m/s')
ylabel('Pma in Pascals')
zlabel('Pme in Pascals')
legend show
subplot(172)
plot3(cm_willans,pma_1900,pme_e, '-m','DisplayName','legend-2');
xlabel('Cm in m/s')
ylabel('Pma in Pascals')
zlabel('Pme in Pascals')
legend show
subplot(173)
plot3(cm_willans,pma_2500,pme_e, '-g','DisplayName','legend-3');
xlabel('Cm in m/s')
ylabel('Pma in Pascals')
zlabel('Pme in Pascals')
legend show
subplot(174)
plot3(cm_willans,pma_3000,pme_e, '-b','DisplayName','legend-4');
xlabel('Cm in m/s')
ylabel('Pma in Pascals')
zlabel('Pme in Pascals')
legend show
subplot(175)
plot3(cm_willans,pma_4200,pme_e, '-k','DisplayName','legend-5');
xlabel('Cm in m/s')
ylabel('Pma in Pascals')
zlabel('Pme in Pascals')
legend show
subplot(176)
plot3(cm_willans,pma_5300,pme_e, '-y','DisplayName','legend-6');
xlabel('Cm in m/s')
ylabel('Pma in Pascals')
zlabel('Pme in Pascals')
legend show
subplot(177)
plot3(cm_willans,pma_6400,pme_e, '-c','DisplayName','legend-7');
xlabel('Cm in m/s')
ylabel('Pma in Pascals')
zlabel('Pme in Pascals')
legend show
I am not sure if that's what you want. Let me know if you have doubts

Sign in to comment.

More Answers (0)