Stacking Multiple 2D plots in one 3D plot

Hi,
I have 14 two dimensional plots and I want to show them all in a 3D plot like this:
I can plot the 14 plots in the same 2d plot but I want to have an offset between them and plot them in a 3d plot.
figure(1)
for i=1:size(nw,1)
h_FDD_dB(i) = plot(f_FDD,pow2db(SV_FDD{i,1}),'DisplayName',['SV1, No. of windows: ',num2str(i)]);
xlabel('Frequency (Hz)');
ylabel('Singular Value (Power Spectral Density)(dB)');
title('Singular Values of the SD Matrix')
xlim([0 60])
legend
hold on
grid on
end
legend(h_FDD_dB);
nw = 1:1:14;
and f_FDD & SV_FDD{i,1} are 65537*1 vectors.
Thanks,
Amir

 Accepted Answer

Check out the following resources. If you get stuck implementing a solution, share your updated code and we can help you get unstuck.

7 Comments

Hi Adam,
This is very similar to what I wanna do:
I have trouble defining my variables though. My data is stored in cell arrays instead of just one table and I'm confused how to apply your solution to my problem. I'd really appreciate it if you could help me.
Thanks,
Amir
You can also do it in a loop.
It will look something like this (not tested).
figure(1)
hold on
for i=1:size(nw,1)
h_FDD_dB(i) = plot3(i,f_FDD,pow2db(SV_FDD{i,1}),'DisplayName',['SV1, No. of windows: ',num2str(i)]);
end
legend(h_FDD_dB);
xlabel('Number of windows') % ???
ylabel('Frequency (Hz)');
zlabel('Singular Value (Power Spectral Density)(dB)');
title('Singular Values of the SD Matrix')
ylim([0 60]) %???
grid on
view(3)
I get the "Vectors must be the same length." error, that's where I get confused.
Instead of plot3(i,..., replace i with repmat(i,size(f_FDD))
Great! You can also switch the first and second inputs to control whether the data vary across the X or y axes.
I'll give it a try, thanks again Adam!

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!