Multiple 2d "contourf" surfaces in a 3d figure
1 view (last 30 days)
Show older comments
Hi all,
I'd like to plot multiple (y,z) 2d surfaces (made with contourf function) at different position on x, in order to obtain 3d figure, exactly like this image:
Could you help me?
Thanks a lot
Answers (1)
Aurele Turnes
on 6 Aug 2014
To recreate something like the figure attached, you can first create the planar surface in the 3D-plane using the surface function with appropriate (x,y,z) values and then set the CData properties of those surfaces to be your image slices. I am not certain that you can use contourf for this, but you can plot your images directly instead. For instance, if your images are contained in a 3d-matrix Z, where the third dimension indexes the slice number, you could try the following code:
% get the size of Z (P indicates the number of images to be plotted
[M,N,P] = size(Z);
figure;
hold on
for i=1:P
% Create a plane at x=i
h = surface(i*ones(1,M),1:N,repmat([M:-1:1],N,1),repmat([M:-1:1],N,1));
% set the color of the plane to be the image
h.CData = Z(:,:,i)';
% set some extra properties
h.CDataMapping = 'direct';
h.EdgeColor = 'none';
end
% set the viewing angle
view(3)
0 Comments
See Also
Categories
Find more on Lighting, Transparency, and Shading 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!