如何为matlab图着色
How to color the matlab plot
有没有办法在 matlab 中给绘图着色?例如我的x和y坐标在0和1之间。我想给x乘以y小于0.5的区域设置红色区域,其余区域设置黄色区域。
谢谢。
您可以使用 pcolor
生成伪彩色图。要获得 x*y
的值,只需进行适当的矩阵乘法即可获得 M
。 M
可以和0.5和M<0.5
比较。这个 returns 一个逻辑矩阵,用 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
结果如下所示:
有没有办法在 matlab 中给绘图着色?例如我的x和y坐标在0和1之间。我想给x乘以y小于0.5的区域设置红色区域,其余区域设置黄色区域。
谢谢。
您可以使用 pcolor
生成伪彩色图。要获得 x*y
的值,只需进行适当的矩阵乘法即可获得 M
。 M
可以和0.5和M<0.5
比较。这个 returns 一个逻辑矩阵,用 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
结果如下所示: