Matlab:使用颜色图将一维数组转换为 RGB 三元组

标签 matlab colormap

我正在尝试绘制一组矩形,每个矩形的填充颜色代表 0 到 1 之间的某个值。理想情况下,我想使用任何标准颜色图。

请注意,矩形没有放置在一个漂亮的网格中,因此使用 imagescsurf 或类似的似乎不切实际。另外,分散功能似乎不允许我分配自定义标记形状。因此,我不得不在 for 循环中绘制一堆矩形并手动分配 FillColor

从标量值计算 RGB 三元组的最有效方法是什么?我一直无法找到类似于 [r,g,b] = val2rgb(value,colormap) 的函数。 现在,我已经构建了一个计算“jet”值的函数,在检查 rgbplot(jet) 后。这似乎有点傻。当然,我可以通过插值从任意颜色图中获取值,但这对于大型数据集来说会很慢。

那么,高效的 [r,g,b] = val2rgb(value,colormap) 会是什么样子?

最佳答案

您还有另一种方法来处理它:使用 patch 绘制矩形或fill指定色阶值 C 作为第三个参数。然后您可以添加和调整颜色条:

x = [1,3,3,1,1];
y = [1,1,2,2,1];
figure
for ii = 1:10
    patch(x + 4 * rand(1), y + 2 * rand(1), rand(1), 'EdgeColor', 'none')
end
colorbar

有了这个输出:

enter image description here

关于Matlab:使用颜色图将一维数组转换为 RGB 三元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40057611/

相关文章:

matlab - 分配期间的索引

matlab - 如何在 matlab 中以非交互方式使用 cftool

python - 生成 GeoTIFF 颜色图

MATLAB 类 getter 和 setter

c++ - 如何将 matlab::data::TypedArray<double> 作为指针传递以在 MATLAB mex 文件中构造 Armadillo 矩阵?

python - 在 matplotlib 中设置颜色条范围

matlab - 在 Matlab/Octave 中创建颜色图/热图

python - 使用 matplotlib 线图的颜色图

python - Mayavi 为所有场景修复了颜色条

matlab - 在 Matlab 中使用 inv() 函数会使用所有 RAM 崩溃