如何在Matlab中混合不同颜色贴图的颜色
我希望重叠区域显示colormap(热)和colormap(冷)的混合颜色 比如说,如何在Matlab中混合不同颜色贴图的颜色,matlab,contour,colormap,Matlab,Contour,Colormap,我希望重叠区域显示colormap(热)和colormap(冷)的混合颜色 比如说, contourf(peaks) colormap(hot) freezeColors hold on contourf(peaks') colormap(cool) 甚至我调整alpha值来调整等高线图的透明度。这些颜色看起来仍然不像是两种不同颜色贴图的混合。例如,轮廓1的一个环填充蓝色,轮廓2的另一个环填充红色。在等高线1和等高线2的环的重叠区域中,我想在等高线1和等高线2上填充紫色(红色+蓝色),而非重叠
contourf(peaks)
colormap(hot)
freezeColors
hold on
contourf(peaks')
colormap(cool)
甚至我调整alpha值来调整等高线图的透明度。这些颜色看起来仍然不像是两种不同颜色贴图的混合。例如,轮廓1的一个环填充蓝色,轮廓2的另一个环填充红色。在等高线1和等高线2的环的重叠区域中,我想在等高线1和等高线2上填充紫色(红色+蓝色),而非重叠区域仍然保持原始颜色(蓝色或红色)有人有好主意吗
提前谢谢 编辑:我刚看了你的编辑,我不知道这个答案是你想要的。。。我就把它留在这儿以防万一 您正在使用的hold on命令只是覆盖以前的点(此外,colormap影响全局点,因此无论如何都无法工作…)。您需要做的是生成一个新的colormap,它是两个旧colormap的总和,有点像这样:
Map1=colormap(hot);
Map2=colormap(cool);
CustomMap=Map1/2+Map2/2;
imshow(ImageWhatever)
colormap(CustomMap)
希望那是你想要的 我已经想出了解决办法。代码显示为blow im1=双峰(300)
im2=双峰(300’)
im1_rgb=夏季(im1)
im2_rgb=冷(im2)
[x,y]=meshgrid(1:size(im1,2),1:size(im1,1))
数据=im1_rgb/2+im2_rgb/2
子批次(1,3,1)
t颜色(x,y,数据)
等等 [c,h1]=轮廓(x,y,im1)
设置(h1,'LineColor','b')
[c,h2]=轮廓(x,y,im2)
设置(h2,'LineColor','k')
推迟
子批次(1,3,2)
t颜色(x,y,im1_rgb)
等一下
[c,h1]=轮廓(x,y,im1)
设置(h1,'LineColor','b')
推迟
子批次(1,3,3)
t颜色(x,y,im2_rgb)
等一下
[c,h2]=轮廓(x,y,im2)
设置(h2,'LineColor','k')
暂停
请编辑您的问题,清楚地解释“两种不同颜色的混合”是什么意思,一点也不清楚。谢谢您的回答!我添加了一个示例来解释“两种不同颜色的混合”的含义。是matlab central的一个外部函数。它允许在同一个
图形上使用不同的颜色映射,但只能在不同的轴上使用(不同的子地块)。我认为没有办法在同一个轴上使用两个彩色贴图。您必须创建自己的混合颜色映射,并对数据进行偏移,以便每个颜色映射只在其所属的颜色映射部分建立索引。感谢您的回复!冻结颜色可以在同一轴上使用不同的颜色贴图。我曾经使用3种不同的颜色贴图在同一个轴和图形中绘制三个二维轮廓。我遇到的问题是,我想使用混合颜色贴图来强调部分重叠轮廓的区域。对于其他区域,应保留原始颜色图。感谢您的回复!如果两个轮廓完全重叠,则应使用混合颜色贴图。我遇到的问题是部分重叠的等高线图。对于重叠区域,我希望它显示混合颜色贴图。对于其他区域,应保留原始颜色贴图。