MATLAB: Plotting multiple 3D plots on one graph

3d plotslegendMATLABplotplotting

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

Best Answer

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 !
Related Question