matlab学习笔记 colormap 函数
2014-04-17 09:43
846 查看
matlab中,每个figure都有(而且仅有)一个colormap,翻译过来就是色图。
COLORMAP(MAP) 用MAP矩阵映射当前图形的色图。
COLORMAP('default') 默认的设置是
JET.
MAP
= COLORMAP 获得当前色图矩阵.
COLORMAP(AX,...)
应用色图到AX坐标对应的图形,而非当前图形。
MAP实际上是一个mx3的矩阵,每一行的3个值都为0-1之间数,分别代表颜色组成的rgb值,
[1 0 0] 代表红色,[0 1 0]代表绿色,[0 0 1]代表蓝色。系统自带了一些colormap,如:winter、autumn等。输入winter,就可以看到它是一个64x3的矩阵。用户可以自定义自己的colormap,而且不一定是64维的。
[0 0 0] is black, [1 1 1] is white,
[1 0 0] is pure red, [.5 .5 .5] is gray, and
[127/255 1 212/255] is aquamarine.
那么颜色在fill或patch,SURFACE等函数中到底是如何显示的呢?本质上,是把具体的颜色变成colormap中的相应index,也就是行数。这个过程叫做换算映射:将指定的数值颜色向量(矩阵)C,映射到对应的颜色。颜色矩阵C的数值范围为[Cmin,
Cmax], Cmin 和Cmax的数值或者为
min(min(C)) max(max(C)),也可以在CAXIS中设置。
在matlab中,图形窗的属性'CdataMapping‘缺省设置值为'scaled',也就是线性的映射。
Cmin对应的值映射到colormap的第一行,Cmax对应的值映射到colormap的最后一行。
映射过程如下:
首先,需要根据caxis取得Cmin和Cmax两个变量(默认值为0和1),画图时如果指定了数值颜色向量(矩阵)C,Cmin和Cmax自动设置为C中的最大值和最小值。当你想控制时,可以自定义。比如将Cmax减小,这样将把所有大于Cmax的C值,全部都映射到同一个颜色(colormap 中index最大的行代表的颜色)。
根据Cij在Cmin和Cmax之间的比例关系,确定对应的颜色的index,默认为线性映射。
也就是说,当制定了数值颜色向量(矩阵)C之后画图,图中颜色的使用范围会自动占满整个颜色范围!
实例:
clc;
clear all;
x=[0 1 1 0];
y=[0 0 1 1]; %定义四个点 [0 0] [1 0] [1 1] [0 1]
H_F=fill(x,y,[0 0.1 0.2 0.6]); %定义四个点的C值
row_cmap = 15; %定义色图矩阵的行数
color_map1=zeros(row_cmap,3); %定义色图矩阵
color_r = 0:1/(row_cmap-1):1;
color_g = 0:1/(row_cmap-1):1;
color_b = 0:1/(row_cmap-1):1;
color_map1(:,1) = color_r;
color_map1(:,2) = color_g;
colormap(color_map1);
colorbar;
%本例中颜色从[0 0 0] 变化到[1 1 0]
%增加row_cmap的值,如变化到100,则可看到颜色的渐变,而非跳跃型变化。
原文地址:http://blog.sina.com.cn/s/blog_618af1950100eyp4.html
COLORMAP(MAP) 用MAP矩阵映射当前图形的色图。
COLORMAP('default') 默认的设置是
JET.
MAP
= COLORMAP 获得当前色图矩阵.
COLORMAP(AX,...)
应用色图到AX坐标对应的图形,而非当前图形。
MAP实际上是一个mx3的矩阵,每一行的3个值都为0-1之间数,分别代表颜色组成的rgb值,
[1 0 0] 代表红色,[0 1 0]代表绿色,[0 0 1]代表蓝色。系统自带了一些colormap,如:winter、autumn等。输入winter,就可以看到它是一个64x3的矩阵。用户可以自定义自己的colormap,而且不一定是64维的。
[0 0 0] is black, [1 1 1] is white,
[1 0 0] is pure red, [.5 .5 .5] is gray, and
[127/255 1 212/255] is aquamarine.
那么颜色在fill或patch,SURFACE等函数中到底是如何显示的呢?本质上,是把具体的颜色变成colormap中的相应index,也就是行数。这个过程叫做换算映射:将指定的数值颜色向量(矩阵)C,映射到对应的颜色。颜色矩阵C的数值范围为[Cmin,
Cmax], Cmin 和Cmax的数值或者为
min(min(C)) max(max(C)),也可以在CAXIS中设置。
在matlab中,图形窗的属性'CdataMapping‘缺省设置值为'scaled',也就是线性的映射。
Cmin对应的值映射到colormap的第一行,Cmax对应的值映射到colormap的最后一行。
映射过程如下:
首先,需要根据caxis取得Cmin和Cmax两个变量(默认值为0和1),画图时如果指定了数值颜色向量(矩阵)C,Cmin和Cmax自动设置为C中的最大值和最小值。当你想控制时,可以自定义。比如将Cmax减小,这样将把所有大于Cmax的C值,全部都映射到同一个颜色(colormap 中index最大的行代表的颜色)。
根据Cij在Cmin和Cmax之间的比例关系,确定对应的颜色的index,默认为线性映射。
也就是说,当制定了数值颜色向量(矩阵)C之后画图,图中颜色的使用范围会自动占满整个颜色范围!
实例:
clc;
clear all;
x=[0 1 1 0];
y=[0 0 1 1]; %定义四个点 [0 0] [1 0] [1 1] [0 1]
H_F=fill(x,y,[0 0.1 0.2 0.6]); %定义四个点的C值
row_cmap = 15; %定义色图矩阵的行数
color_map1=zeros(row_cmap,3); %定义色图矩阵
color_r = 0:1/(row_cmap-1):1;
color_g = 0:1/(row_cmap-1):1;
color_b = 0:1/(row_cmap-1):1;
color_map1(:,1) = color_r;
color_map1(:,2) = color_g;
colormap(color_map1);
colorbar;
%本例中颜色从[0 0 0] 变化到[1 1 0]
%增加row_cmap的值,如变化到100,则可看到颜色的渐变,而非跳跃型变化。
原文地址:http://blog.sina.com.cn/s/blog_618af1950100eyp4.html
相关文章推荐
- Matlab画函数图学习笔记3
- 【Matlab学习笔记】【函数学习】size函数—图像的宽与高的获取
- MATLAB学习笔记 函数记录(一)
- 语音学习笔记4------matlab实现逆向生成音频格式的信号audiowrite()函数
- 【Matlab学习笔记】【函数学习】nargin 参数
- 【学习笔记】matlab算法实现贝叶斯判别classify函数
- 学习笔记--MATLAB常用函数
- Matlab学习笔记(一)基础函数
- OpenCV学习笔记(12)OpenCV调用Matlab函数进行保存视频的尝试
- MATLAB学习笔记 函数记录(三)
- matlab学习笔记009之solve函数
- 【Matlab图像处理】学习笔记:cat函数合成RGB 图像
- matlab学习笔记 repmat函数与kron函数之区别
- Matlab中del2()函数学习笔记
- 【Matlab学习笔记】【函数学习】一(延时函数pause)
- Matlab学习笔记-数据和函数可视化
- MATLAB 函数学习笔记
- 【Matlab学习笔记】【函数学习】max()和max(max())的区别
- matlab学习笔记--函数
- MATLAB神经网络学习笔记之:利用learnp函数对感知器网络实现‘或’门