我正在尝试绘制一组矩形,每个矩形的填充颜色代表 0 到 1 之间的某个值。理想情况下,我想使用任何标准颜色图。
请注意,矩形没有放置在一个漂亮的网格中,因此使用 imagesc
、surf
或类似的似乎不切实际。另外,分散功能似乎不允许我分配自定义标记形状。因此,我不得不在 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
有了这个输出:
关于Matlab:使用颜色图将一维数组转换为 RGB 三元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40057611/