matlab里面mesh绘图,如何改变指定区域的颜色

比如绘制了一个x,y,z上的曲面,它本身是有颜色的,我想把x[10,50]y[40,50]这块区域的颜色改成指定的颜色,怎么做,谢谢... 比如绘制了一个x,y,z上的曲面,它本身是有颜色的,我想把x[10,50] y[40,50]这块区域的颜色改成指定的颜色,怎么做,谢谢 展开
 我来答
showtime_97
2014-09-12 · TA获得超过4782个赞
知道大有可为答主
回答量:1005
采纳率:90%
帮助的人:817万
展开全部

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

kn6603
2019-05-21 · TA获得超过113个赞
知道答主
回答量:6
采纳率:0%
帮助的人:5558
展开全部

将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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式