Colormap固定中间值

59视图(30天)
糟糕透顶
糟糕透顶 2016年9月29日
评论道: 失败2021年11月14日
Hej, pcolor情节我已经建立了治疗的比率与控制(a / B)和要绘制结果pcolor情节与颜色根据他们的价值——在这种情况下,0 - 1应该总是在一个梯度由蓝色变为白色,而一切以上(不同maxvalue)应该在一个梯度白色到红色。有一种“修复”colorbar,白色永远是显示值1我的数据?(或者我可以用2 colormaps吗?)

接受的答案

布兰登Eidson
布兰登Eidson 2016年10月4日
你肯定可以创建一个定制的彩色地图在MATLAB。这样做的方法之一是通过定义的RGB值最大,最小,索引值(你的“1”的值是我调用索引值)。然后,您可以创建一个向量表示RGB值从最低到索引的索引颜色和最大的颜色。
因为索引值可能不是数据集的中值,向量的大小需要调整比例的指数介于最大和最小值。
我写了一个脚本,说明了这种方法。看看你是否能应用于您的情况。
L = 10;%的数量越来越多
数据= 3.6 *兰德(L);%创建示例数据集值从0到3.6
indexValue = 1;%值设置一个特定的颜色
topColor = (1 0 0);%颜色最大数据值(红色= (1 0 0))
indexColor = (1 1 1);%颜色索引数据值(白色= (1 1 1))
bottomcolor = (0 0 1);最小数据值%颜色(蓝色= (0 0 1))
%计算最小和之间的比例indexValue所在
%最大值
最大= max (max(数据));
最小=最小(最小值(数据));
指数= L * abs (indexValue-smallest) / (largest-smallest);
%创建彩色地图从底部颜色索引颜色
%多个点数量在100年增加了更多的决议
customCMap1 = [linspace (bottomcolor (1) indexColor(1), 100 *指数)”,
indexColor linspace (bottomcolor(2),(2), 100 *指数)”,
linspace (bottomcolor (3) indexColor(3), 100 *指数)');
%创建彩色地图从索引颜色上面的颜色
%多个点数量在100年增加了更多的决议
customCMap2 = [linspace (indexColor (1) topColor (1), 100 * (L-index))”,
topColor linspace (indexColor (2), (2), 100 * (L-index))”,
linspace (indexColor (3) topColor (3), 100 * (L-index)) ');
customCMap = [customCMap1; customCMap2];%结合colormaps
colormap (customCMap)
psudo = pcolor(数据);
colorbar
4评论
失败
失败 2021年11月14日
谢谢布兰登,但我试过这个方法一个矩阵包含负数和它对我并没有起到什么作用。

登录置评。

答案(1)

Debashish萨哈
Debashish萨哈 2018年7月3日
嗨布兰登,它也为一个向量包含负值?在我的例子中,似乎在确切位置/点0值不是白色的彩条。应该取最小值的绝对否定的负数向量而确定指数在代码中?提前谢谢。欢呼,DS

类别

找到更多的在Colormaps帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!