如何为matlab绘图着色

时间:2015-07-08 12:38:22

标签: matlab plot graph-coloring

是否存在在matlab中为绘图着色的方法?例如,我的x和y坐标介于0和1之间。我想给区域带一个红色区域,x倍y小于0.5,其余为黄色。

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用pcolor生成伪彩色图。要获取x*y的值,只需执行适当的矩阵乘法即可获得M。可以将MM<0.5进行比较。这将返回一个逻辑矩阵,该矩阵将转换为带有double - 函数的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

结果如下: result1

编辑:如果您想要多个不同颜色的区域,只需在色彩图中添加一种新颜色,然后相应地编辑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

结果如下: result2