matlab里面mesh绘图,如何改变指定区域的颜色
clear all
[X,Y] = meshgrid(-3:.0625:3);
Z = peaks(X,Y);%生成数据z
[x,y]=meshgrid(1:97);%为了举例方便生成坐标
figure(1)
mesh(x,y,Z);
colorbar
xR=[10,50];%设置x范围
yR=[40,50];%设置y范围
z1=Z.*(x>=xR(1)&x<=xR(2))&(y>=yR(1)&y<=yR(2));%为取出设定范围数据重新赋值而得到逻辑数组
z2=Z;%为不覆盖原始Z,新建变量
z2(z1(:)==1)=-5;%设定范围改为蓝色
%对取出范围内的数据重新赋值,生成用于着色的数组
%由于mesh函数不管怎样都只能用同一个colormap,所以你能改变的颜色必须在你使用的colormap中
%在figure(1)中的colorbar中读取颜色对应的值,可以大约的估计,6,3,-1,-5可以对应红,黄,孔雀蓝,蓝色。
%如果你要改变的颜色不在你所用的colormap中,那你只能编辑colormap了。例如黑色,不在jet中,你就要自己编辑了。
figure(2)
mesh(x,y,Z,z2);
colorbar
将showtime_97的代码重写一遍以清晰地浏览:
clear all
[X,Y] = meshgrid(-3:.0625:3);
Z = peaks(X,Y); %生成数据Z
[x,y]=meshgrid(1:97); %为了举例方便生成坐标
figure(1)
mesh(x,y,Z);
colorbar
xR=[10,50]; %设置x范围
yR=[40,50]; %设置y范围
z1=Z.*( (x>=xR(1)&x<=xR(2)) & (y>=yR(1)&y<=yR(2)) ); %布尔运算,为取出设定范围数据重新赋值而得到逻辑数组
z2=Z; %为不覆盖原始Z,新建变量z2
z2(z1(:)~=0)=-5; %将设定范围内的数据改为蓝色。在figure(1)中的colorbar中读取颜色对应的值,可以大约的估计,6,3,-1,-5可以对应红,黄,孔雀蓝,蓝色,,蓝色即对应-5。由于mesh函数不管怎样都只能用同一个colormap,所以你能改变的颜色必须在你使用的colormap中。如果你要改变的颜色不在你所用的colormap中,那你只能编辑colormap了。例如黑色,不在jet中,你就要自己编辑了。
figure(2)
mesh(x,y,Z,z2); %z2为颜色数据
colorbar