Multiple 2d "contourf" surfaces in a 3d figure

2 visualizaciones (últimos 30 días)
Enrico
Enrico el 29 de Jul. de 2014
Comentada: Philippe Corner el 2 de Sept. de 2019
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

Respuestas (1)

Aurele Turnes
Aurele Turnes el 6 de Ag. de 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)

Categorías

Más información sobre Contour Plots en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by