是否存在在matlab中为绘图着色的方法?例如,我的x和y坐标介于0和1之间。我想给区域带一个红色区域,x倍y小于0.5,其余为黄色。
谢谢。
答案 0 :(得分:1)
您可以使用pcolor
生成伪彩色图。要获取x*y
的值,只需执行适当的矩阵乘法即可获得M
。可以将M
与M<0.5
进行比较。这将返回一个逻辑矩阵,该矩阵将转换为带有double
- 函数的double,然后传递给pcolor
。然后我们设置一个包含红色和黄色的色彩图。最后,我们可以应用shading flat
或shading interp
(另外插值),因此补丁之间的线条会消失。
x = linspace(0,1,1000);
y = x;
M = x'*y;
pcolor(x,y,double(M<0.5));
colormap([1,1,0;1,0,0]);
shading interp
结果如下:
编辑:如果您想要多个不同颜色的区域,只需在色彩图中添加一种新颜色,然后相应地编辑pcolor
的颜色参数。以下代码生成三区图:
x = linspace(0,1,1000);
y = x;
M = x'*y;
C = double(M<0.5)+double(M<0.75);
pcolor(x,y,C);
colormap([0,1,0;1,1,0;1,0,0]);
shading flat
结果如下: