MATLAB: How to prevent all the axes colormaps in a figure from being updated at once

colormapMATLABmultiple axes

Folks,
I have a single GUI with several axes. When I set the current axes to axes 1, and I change the colormap with "colormap(gray)" for example, this changes the colorbars on the other axes to also be gray. My desired behavior is to control each axes colormap within my GUI indepdently. I tried the Matlab uploaded functions "freezeColors" and "unfreezeColors", but that does not seem to fix this.
Thank you,
Kris

Best Answer

  • According to the colormap documentation the syntax that you are using changes the colormap for the entire figure, which is inherited by any axes within that figure. The documentation also states that if you only want to change the colormap of one axes then you need to specify those axes:
    axh = axes(...)
    ...
    colormap(axh,...)
    Tip: experienced MATLAB users recommend always using explicit graphics handles, as my example code shows, rather than unreliable and unpredictable gca, gcf, etc.