Pcolor equivalent for 3D array
34 ビュー (過去 30 日間)
古いコメントを表示
Hi guys,I want to draw the figure below. I know to use the pcolor function to draw 2D graphics. But now I have a 3D array and I would like a 3D plot of such an array - essentially a 3D cube consisting of 8 "subcubes", with different colors for different numbers just like shown below.
Can anyone help me plot this? Thanks.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/330410/image.png)
0 件のコメント
採用された回答
Bjorn Gustavsson
2020 年 7 月 12 日
The type of plot you've presented is easily reproduced by this:
[x,y,z] = meshgrid(0:3,0:4,0:5);
F = floor(4*rand(size(x)));
szF = size(F);
sq = @(x) squeeze(x);
surf(sq(x(1,:,:)),sq(y(1,:,:)),sq(z(1,:,:)),sq(F(1,:,:)))
hold on
surf(sq(x(szF(1),:,:)),sq(y(szF(1),:,:)),sq(z(szF(1),:,:)),sq(F(szF(1),:,:)))
surf(sq(x(:,1,:)),sq(y(:,1,:)),sq(z(:,1,:)),sq(F(:,1,:)))
surf(sq(x(:,szF(2),:)),sq(y(:,szF(2),:)),sq(z(:,szF(2),:)),sq(F(:,szF(2),:)))
surf(sq(x(:,:,1)),sq(y(:,:,1)),sq(z(:,:,1)),sq(F(:,:,1)))
surf(sq(x(:,:,szF(3))),sq(y(:,:,szF(3))),sq(z(:,:,szF(3))),sq(F(:,:,szF(3))))
After that you might want to adapt the colormap or repeat the plot for displaying other slices in the volume - since this only shows the outer surfaces of a data-cube.
その他の回答 (1 件)
Bjorn Gustavsson
2020 年 7 月 11 日
For visualization of 3-D data matlab has a couple of builtin functions: slice, scatter3 and isosurface. They does tasks at least neighboring to the one you describe. You will find other functions for visualization of 3-D data on the file exchange: Volume visualizations, and if you search further there you might find even more. Your example figure seem to indicate that you are primarily interested in what goes on on the surface of a 3-D object, for that you might get a long way by using the surf command on the individual surfaces you want to look at from your 3-D data-volume.
HTH
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Surface and Mesh Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!