我正在或多或少地执行以下操作:

figure
for ii=1:4
    subplot(2,2,ii)
    imshow(image(ii))
    hcb = colorbar;

    switch ii
        case 1
            colormap(myMap)
            set(hcb,'YTickLabel', .. )
            set(hcb,'YTick', .. )
        case 2
            colormap(myMap)
            set(hcb,'YTickLabel', .. )
            set(hcb,'YTick', .. )
        case 3
            colormap(myMap)
            set(hcb,'YTickLabel', .. )
            set(hcb,'YTick', .. )
        case 4
            colormap(aDifferentMap)
            set(hcb,'YTickLabel', .. )
            set(hcb,'YTick', .. )
    end
end

我要面对的是,为第四幅图(colormap(aDifferentMap))调用ii=4,将前三幅图的工作搞砸了:在我的最终图中,所有颜色条都具有aDifferentMap色图,并且YTick属性也存在一些问题。

如果我在情况4中将colormap(aDifferentMap)注释掉,那么一切都很好(除了第四个子图,它将有一个错误的颜色图,并且没有Ytickes)。

我该如何处理?如何在不影响子图1:3的情况下设置subplot(2,2,4)的属性?

最佳答案

对于 Matlab 2014a,在应用answer of Phil Goddard之前,您需要使用例如FileExchange中的 freezeColors

Matlab 2014b 中,使用update of the graphics engine to version HG-2解决了该问题。现在,除非单独设置轴颜色图,否则颜色图会影响图中的所有轴。 (来自doc)

figure
ax1 = subplot(2,1,1);
surf(peaks)
colormap(ax1,spring)

ax2 = subplot(2,1,2);
surf(peaks)
colormap(ax2,winter)

10-02 10:33