Update: 2017: As of Matlab 2014b, this may no longer be needed as MATLAB now allows multiple colormaps per figure--please see my comment. Thanks!
Version 2.3, 3/2007
(*What's NEW: 9/2010, A colorbar solution)
Problem: There is only one colormap per figure, so all plots share the same colormap. Often one wants different colormaps.
Solution: This function pair provides an easy way to have plots using different colomaps in the same figure.
freezeColors %freeze this plot's colormap
colormap hsv % won't change any frozen plots!
**** COLORBAR WORKAROUND (NEW 9/2010) ****
** Note: in recent versions of MATLAB the colorbar is reinitialized
** whenever you call COLORMAP, which undoes the effects of freezeColors.
** Suggested solution: Use the function CBFREEZE, by
** Carlos Adrian Vargas Aguilera, located in the fileexchange
h=colorbar; cbfreeze(h), or simply cbfreeze(colorbar)
%Colorbar workaround example
Since Carlos has made a nice solution, I have chosen not to duplicate his efforts. Please use his fine code.
freezeColors Freeze colors of plots, making them immune to later changes in the colormap. Converts colors of many graphics objects (images, surfaces, scattergroups, bar plots, patches, etc--anything using indexed CData) to [r g b] truecolor.
unfreezeColors Reverses the effects of freezeColors. Restores the original indexed color data, allowing the colormap and caxis to again affect the plots.
Demo & Documentation in freezeColors_pub.html, test in test/test_main.m.