matlab - 如何在不同的子图中应用不同的颜色图?

标签 matlab matlab-figure colorbar colormap

我或多或少做了以下事情:

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你需要使用例如freezeColors来自 FileExchange。


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)

enter image description here

关于matlab - 如何在不同的子图中应用不同的颜色图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29331209/

相关文章:

matlab - 如何告诉 MATLAB 在同一目录中打开和保存特定文件

matlab - 在 Matlab 中插入 3D 圆柱体的表面

matlab - 如何使用 MATLAB 绘制给定值的阶梯图?

python - Matplotlib,所有子图的一个颜色条,覆盖在纸张大小上

Matlab:如何保存透明的 TIFF 或不压缩的 PNG?

matlab - 仅添加Matlab中现有的变量

matlab - 将十进制转换为二进制向量

matlab - 如何在 Matlab 中绘制奇怪的时间戳

Python相同的颜色条用于函数的实/虚等高线图的子图

python - 侧面的 sns.jointplot "kde"样式的颜色条