Skip to main content
 首页 » 编程设计

python之Matlab,Python : Fixing colormap to specified values

2025年05月04日63TianFang

尝试根据二维值矩阵修复颜色图时,这是一项简单但常见的任务。 为了演示考虑 Matlab 中的问题,解决方案不需要在 Matlab 中(即,此处提供的代码仅用于演示目的)。

 
x = [0,1,2; 3,4,5; 6,7,8]; 
imagesc(x) 
axis square 
axis off 
所以输出如下:

当某些值更改为超过最大值时,它会发生如下情况:
 
x = [0,1,2; 3,4,5; 6,7,18]; 
这看起来合乎逻辑,但当我们希望比较/跟踪两个 map 中的元素时会出现问题。由于颜色图关联已更改,因此几乎不可能找到用于比较/跟踪等的单个单元格。
我实现的解决方案是将矩阵屏蔽为:
 
x = [0,1,2; 3,4,5; 6,7,18]; 
m = 8; 
x(x>=m) = m; 
效果很好。
由于提供的代码需要搜索/过滤(额外耗时!)我想知道是否有 通用/更有效的方法可以在 Matlab 中实现此作业, Python 等?

出现此问题的情况之一是当我们连续进行许多模拟并希望对进度制作有意义的动画时;在这种情况下,每种颜色都应保持其关联固定。

请您参考如下方法:

在 Python 中使用包 MatPlotLib解决方法如下:

 
import pylab as pl 
x = [[0,1,2],[3,4,5],[6,7,18]] 
pl.matshow(x, vmin=0, vmax=8) 
pl.axis('image') 
pl.axis('off') 
show() 
所以 vmin 和 vmax 是整个颜色图范围的边界限制。