如何为matlab图着色

How to color the matlab plot

有没有办法在 matlab 中给绘图着色?例如我的x和y坐标在0和1之间。我想给x乘以y小于0.5的区域设置红色区域,其余区域设置黄色区域。

谢谢。

您可以使用 pcolor 生成伪彩色图。要获得 x*y 的值,只需进行适当的矩阵乘法即可获得 MM可以和0.5和M<0.5比较。这个 returns 一个逻辑矩阵,用 double 函数转换为双精度数,然后传递给 pcolor。然后我们设置一个包含红色和黄色的颜色图。最后,我们可以应用 shading flatshading 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

结果如下所示: