MATLAB颜色修改与渲染

colormap

colormap用于修改色轴,即修改图形的颜色。对于三维图形来说,MATLAB会自动检测图形的最大值和最小值,按照大小映射色谱的颜色。

colormap name

其中name是MATLAB中自带的色轴名称。如colormap spring;即将颜色风格改为“spring”;如果想要还原默认风格,语句是colormap default 注意改变色轴会使整个图窗所有的坐标区颜色发生变化。下图是MATLAB自带色轴图:在这里插入图片描述

colormap(cmap)

cmap即自定义的色轴矩阵。矩阵是n行3列的矩阵,每一行的三个数是RGB表示的颜色,n行就组成了n个色条。但是name要括在括号里。括号里的cmap也可以是上述的自带色轴名字。

colormap(target,name)

修改指定坐标区的色轴。target是坐标轴的句柄。用这个语句可以指定某个坐标区的色轴,不会影响其他坐标区。

cmap=colormap(target)

返回target中的色轴矩阵,省略target即返回当前坐标区的色轴矩。

以下给出实例:

[x,y,z]=peaks(30);
subplot(2,3,1);
surf(x,y,z);
colormap(gca,spring);
title('spring');

subplot(2,3,2);
surf(x,y,z);
colormap(gca,summer)
title('summer');

subplot(2,3,3);
surf(x,y,z);
colormap(gca,autumn);
title('autumn');

subplot(2,3,4);
surf(x,y,z);
colormap(gca,winter)
title('winter');

subplot(2,3,5);
surf(x,y,z);
colormap(gca,jet);
title('jet');

subplot(2,3,6);
cmap=[1 0 0;0.5 0 0;0 1 1;0 1 0;0 0.5 0;0 0 1;0.8 0 0.8];
surf(x,y,z);
colormap(gca,cmap);
title('cmap');

在这里插入图片描述

brighten

brighten用于调整色轴的明度。

brighten(beta)

beta大于-1小于1,正数表示增强明度,负数表示减弱明度。

newmap=brighten(beta)

返回改变明度的色轴矩阵到newmap,并不改变本来的色轴矩阵。

newmap=brighten(cmap,beta)

改变cmap的明度,将矩阵返回到newmap中。

surf(x,y,z);

在这里插入图片描述

brighten(0.8);

在这里插入图片描述

caxis([cmin,cmax])与caxis auto

caxis([min,max])设置为小于cmin和大于cmax的部分映射为色轴的两端,之间的映射在色轴上。auto为设置为自动模式,即自动检测函数最大值和最小值,将整个曲面颜色映射到色轴上。

colorbar

显示色轴,colorbar(‘vert’)为垂直色轴,默认形式,与colorbar用途相同。colorbar(‘horiz’)为水平色轴。

figure
subplot(1,2,1);
surf(x,y,z);
colorbar;
title('vert');

subplot(1,2,2);
surf(x,y,z);
colorbar('horiz');
title('horiz');

在这里插入图片描述

surf 属性

FaceAlpha与EdgeAlpha

FaceAlpha为曲面的透明度,在0~1之间,0为完全透明,1为完全不透明。可以在surf函数的参数列表里设置,也可以用h.FaceAlpha设置。EdgeAlpha为网格线的透明度,设置方法相同。

FaceColor与EdgeColor

FaceColor为曲面颜色,也可以用两种方法调用。none为无颜色。EdgeColor为网格线的颜色。

shading

shading有三种方式,分别为shading flat;shading faceted(默认);face interp 设置方式为直接输入shading flat即可。由例子给出样式的样子。

figure
subplot(2,3,1);
surf(x,y,z,'FaceAlpha','0.5');
title('FaceAlpha=0.5');

subplot(2,3,2);
surf(x,y,z,'EdgeColor','b');
title('EdgeColor=b');

subplot(2,3,3)
surf(x,y,z,'EdgeColor','none');
title('EdgeColor=none');

subplot(2,3,4);
surf(x,y,z);
shading faceted
title('faceted');

subplot(2,3,5);
surf(x,y,z);
shading flat
title('flat');

subplot(2,3,6);
surf(x,y,z);
shading interp
title('interp');

在这里插入图片描述
通过shading interp观察俯视图,可以由颜色观察三维图形的高度变化。

figure
surf(x,y,z);
shading interp
view(0,90);
colorbar;

在这里插入图片描述

  • 12
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值