SOM Toolbox | Online documentation | http://www.cis.hut.fi/projects/somtoolbox/ |

Visualizes a 2D component plane or u-matrix

h = som_cplane(topol, color) h = som_cplane(lattice, msize, color) h = som_cplane(lattice, msize, color) h = som_cplane(..., size) h = som_cplane(..., size, pos)

Creates some basic visualizations of the SOM grid: the component plane and the unified distance matrix. The routine draws the SOM grid as a patch object according to the specifications given in the input arguments and returns its object handle. Each unit of the map is presented by a polygon whose color, size, shape and location can be specified in various ways. The usual procedure is to choose the lattice and map size used in the map training. Then the function creates the standard sheet shaped topological representation of the map grid with hexagonal or rectangular units. When the values from a map codebook component (or from SOM_UMAT) are given to the function it produces an indexed coloring for the units (as in SURF command). Another possibility is to give a fixed RGB color for each unit explicitly. Special effects (variable unit size, location or shape) can be produced giving different types of input variables.

Using 1x3 or 3x1 grids causes problem, as the MATLAB will treat the color information vector 1x3 or 3x1 as a single RGB triple. So, using indexed colors is not possible for this particular map size. It is not possible to specify explicit coordinates for map consistig of just one unit as then the msize is interpreted as map size.

Note: M is the number of map units lattice The basic shape of the map units (string) 'hexa' or 'rect' creates standard component plane; 'hexaU' or 'rectU' creates standard u-matrix. (matrix) Lx2 matrix defines the cornes of an arbitary polygon to be used as the unit marker. (L is the number of patch vertex: L=6 for 'hexa' and L=4 for 'rect') msize The size of the map grid (vector) [n1 n2] vector defines the map size (height n1 units, width n2 units, total M=n1 x n2 units). The units will be placed to their topological locations to form a uniform hexagonal or rectangular grid. (matrix) Mx2 matrix defines arbitrary coordinates for the M units In this case the argument 'lattice' defines the unit form only. topol Topology of the map grid (struct) map or topology struct from which the topology is taken color Unit colors (string) (ColorSpec) gives the same color for each unit, 'none' draws black unit edges only. (vector) Mx1 column vector gives indexed color for each unit using the current colormap (see help colormap). (matrix) Mx3 matrix of RGB triples as rows gives each unit a fixed color.

Note: M is the number of map units. Note: if unspecified or given empty values ('' or []) default values are used for optional input arguments. s The size scaling factors for the units (scalar) scalar gives each unit the same size scaling: 0 unit disappears (edges can be seen as a dot). 1 by default unit has its normal size (ie. no scaling) >1 unit overlaps others (matrix) Mx1 double: each unit gets individual size scaling pos Position of origin (vector) This argument exists to be able drawing component planes in arbitrary locations in a figure. Note the operation: if this argument is given, the axis limits setting part in the routine is skipped and the limits setting will be left to be done by MATLAB's default operation.

h (scalar) handle to the created patch object

One object handle is returned: field Tag is set to 'planeC' for component plane 'planeU' for U-matrix

There are some extra features in following arguments size - MxL matrix: radial scaling: the distance between the center of node m and its kth vertex is scaled by s(m,k). - Mx1x2 matrix: the uniform scaling is done separately for x- and y-directions - MxLx2 matrix: the scaling is done separately to x- and y- directions for each vertex. color Each vertex may be given individual color. The PATCH object interpolates the colors on the face if shading is turned to interp. - 1xMxL matrix: colormap index for each vertex - LxMx3 matrix: RGB color for each vertex Note: In both cases (size and color) the ordering of the patch vertices in the "built-in" patches is the following 'rect' 'hexa' 1 3 1 2 4 5 2 6 3 4 The color interpolation result seem to depend on the order in which the patch vertices are defined. Anyway, it gives unfavourable results in our case especially with hexa grid: this is a MATLAB feature.

m=som_make(rand(100,4),'msize',[6 5]) % make a map % show the first variable plane using indexed color coding som_cplane(m.topol.lattice,m.topol.msize,m.codebook(:,1)); or som_cplane(m.topol,m.codebook(:,1)); or som_cplane(m,m.codebook(:,1)); % show the first variable using different sized black units som_cplane(m,'k',m.codebook(:,1)); % Show the u-matrix. First we have to calculate it. % Note: som_umat returns a matrix therefore we write u(:) to get % a vector which contains the values in the proper order. u=som_umat(m); som_cplane('hexaU', m.topol.msize, u(:)); % Show three first variables coded as RGB colors % and turn the unit edges off h=som_cplane(m, m.codebook(:,1:3),1) set(h,'edgecolor','none'); % Try this! (see section FEATURES) som_cplane('rect',[5 5],'none',rand(25,4)); som_cplane('rect',[5 5],rand(1,25,4));

som_barplane
| Visualize the map prototype vectors as bar diagrams |

som_plotplane
| Visualize the map prototype vectors as line graphs |

som_pieplane
| Visualize the map prototype vectors as pie charts |

som_umat
| Compute unified distance matrix of self-organizing map |

vis_patch
| Define the basic patches used in som_cplane |

som_vis_coords
| The default 'hexa' and 'rect' coordinates in visualizations |