image thumbnail

Plot a 3D array using patch

version 1.11.0.0 (197 KB) by Adam A
Plotting a 3D array using a patch surface mesh

4.8K Downloads

Updated 10 Feb 2012

View License

Plot a 3D array using patch
===========================

Adam H. Aitkenhead
adam.aitkenhead@christie.nhs.uk
The Christie NHS Foundation Trust
17th August 2010


USAGE
=====

This function enables a 3D array to be displayed using a patch surface mesh. To plot a 3D logical array, the function is called using the following syntax:

>> hpat = PATCH_3Darray(gridINPUT,gridX,gridY,gridZ);

Alternatively, a 3D numeric array can be plotted such that the colour of each facet corresponds to the value of each voxel in the array. The plot is generated using the following command. (Note that voxels which are not to be displayed should contain a value of NaN.)

>> hpat = PATCH_3Darray(gridINPUT,gridX,gridY,gridZ,'col');

The colormap to be used for the display of a 3D numeric array can be defined as follows:

>> cmap = jet(16);
>> hpat = PATCH_3Darray(gridINPUT,gridX,gridY,gridZ,cmap,'col');

Also, the colorbar lower and upper limits can be defined by the user as follows:

>> clim = [1,10];
>> hpat = PATCH_3Darray(gridINPUT,gridX,gridY,gridZ,clim,'col');


INPUT PARAMETERS
================

gridINPUT - 3D array of size (P,Q,R) - If not using the flag 'col', then gridINPUT should be a logical array. If using the flag 'col', then gridINPUT should be a numeric array, and all voxels which are not to be displayed should contain a value of NaN.
gridX (optional) - A 1xP array - List of the X axis coordinates.
gridY (optional) - A 1xQ array - List of the Y axis coordinates.
gridZ (optional) - A 1xR array - List of the Z axis coordinates.
cmap (optional) - A Nx3 array - The colormap definition. When plotting using the 'col' flag, cmap must be an Nx3 array, eg jet(32). When plotting a logical array, cmap must be an RGB triplet, eg [0.5,0.5,0].
clim (optional) - A 2x1 array - The colormap upper and lower limits.


ADDITIONAL INPUT FLAGS
======================

'col' (optional) - When this flag is present, the surface is plotted using colours which correspond to the value in each voxel. In the input array gridINPUT, voxels which are not to be displayed should have a value of NaN.
'barN' (optional) - Display a colorbar on North of plot.
'barE' (optional) - Display a colorbar on East of plot.
'barS' (optional) - Display a colorbar on South of plot.
'barW' (optional) - Display a colorbar on West of plot.



OUTPUT PARAMETERS
================

hpat (optional) - Handle to the patch object.
hcbar (optional) - Handle to the colorbar.



EXAMPLE
=======

For two examples, run the following code:

>> load exampleA.mat
>> figure
>> hpat = PATCH_3Darray(gridINPUT,gridX,gridY,gridZ);

>> load exampleB.mat
>> figure
>> cmap = jet(16);
>> hpat = PATCH_3Darray(gridINPUT,gridX,gridY,gridZ,'col',cmap);

Cite As

Adam A (2021). Plot a 3D array using patch (https://www.mathworks.com/matlabcentral/fileexchange/28497-plot-a-3d-array-using-patch), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2010a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Acknowledgements

Inspired: Spectral Imaging Toolbox, 2d and 3d brain plots

Community Treasure Hunt

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

Start Hunting!

PATCH_3Darray/