多个颜色图混用的图像,Matlab 原生不好整?我之前也头大,后来发现了个叫 colorindex
的工具函数,真挺方便。它能帮你把图像数据按多个 colormap 分区映射成颜色索引,直接拿去画图,image
、surf
、contour
都能用。
直接颜色索引的方案,了多 colormap 混用时不好同步的问题。它的思路也蛮巧:在原图的 colormap 后面挂上自定义 colormap,再记录每段颜色映射的位置,生成统一的索引矩阵 ic
。操作也不复杂,ic = colorindex(z, cmap, clim)
就能搞定。
唯一要注意的地方:不能直接用 Matlab 的 colorbar,因为它没法识别你加进去的多个 colormap。不过人家也想好了,了个 colorbardi.m
替代,配合用就行。输出的 ic
是直接索引,你只要在绘图时加个 'CDataMapping','direct'
就能对上。
你要是正在做多层数据图,比如一张图上同时展示温度、湿度、风速,还想每个数据用自己的 colormap,那这个函数就派上大用场了。再搭配这些相关文章,思路就更清晰了:
如果你图里数据种类多、颜色需求复杂,可以考虑把 colorindex
加入你的工具库,配合 colorbardi
用,还挺省事。