找回密码
 注册
关于网站域名变更的通知
查看: 670|回复: 3
打印 上一主题 下一主题

matlab 的 colormap 函数

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-6-7 10:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
1 m( j" w. ]) m9 J9 ?" C: p
colormap简介
$ g2 L: ]  N6 r: t8 |8 ~: z" Nmatlab中,每个figure都有(而且仅有)一个colormap,翻译过来就是色图。& o8 w& Z# z  I& x7 g5 I
2 \, l+ Q5 y# B. E

7 v! Y& F' {- R$ `3 Icolormap(map) 用map矩阵映射当前图形的色图。 4 p, p) M' P8 e: _9 E& @- M* M
colormap('default') 默认的设置是 JET.
, w8 V- U: i; u9 T6 Rmap= colormap(获得当前色图矩阵. : d1 V0 P7 d* ~2 b3 U
colormap(ax,...) 应用色图到ax坐标对应的图形,而非当前图形。' J' h) G) o: y) }
- I' R. e9 z1 A, L* p
colormap实际上是一个m × 3的矩阵,每一行的3个值都为0-1之间数,分别代表颜色组成的rgb值,如[0 0 1]代表蓝色。) e8 L, S* J5 L. e% l' H

. q: g$ ~; R. t  I8 r系统自带了一些colormap,如:winter、autumn等。输入winter,就可以看到它是一个64x3的矩阵。
4 Z# V! U1 A- L' f4 N& H0 m* R( S2 [" C* P
用户可以自定义自己的colormap,而且不一定是64维的。
& Y; c* ~% b% C/ A
' J: l$ L" i* D5 w系统自带的colormap:
2 r- x5 }. l3 W- S' @
# ~% O% l- m3 Z; r3 P1 n9 h- x ( q. G/ f% X$ e4 n2 C
3 `: Y5 O) I6 `: `6 c0 a

& R- |- F7 H, H& g  n' P7 B4 R5 ^- Z2 colormap用法
. y4 M& j/ t5 ?& Z4 A那么颜色在fill或patch中到底是如何显示的呢?
& M" r: v& }  n* U) ~; K8 C
% {3 [' S4 G+ ?' p: l本质上,是把具体的颜色变成colormap中的相应index,也就是行数。0 h$ h! A" \6 @% c, W2 w5 e" q
2 M% C8 W% [  A( @+ Z% l4 f
这个过程叫做换算映射:将指定的数值颜色向量(矩阵)C,映射到对应的颜色。
& X' v  v% W6 h" N5 e
; G4 r& i, {5 Z( O0 p, z在matlab中,图形窗的属性'CdataMapping’缺省设置值为'scaled',也就是线性映射。4 T* E7 j+ [6 D4 J0 r

/ C3 L. q( i! U0 E) e- U映射过程如下: 9 Y7 X' u0 Q2 u( A' P
4 T! }+ R( B8 R) n7 v
首先,需要根据caxis取得Cmin和Cmax两个变量(默认值为0和1),画图时如果指定了数值颜色向量(矩阵)C,Cmin和Cmax自动设置为C中的最大值和最小值。当你想控制时,可以自定义。比如将Cmax减小,这样将把所有大于Cmax的C值,全部都映射到同一个颜色(colormap中index最大的行代表的颜色)。 + ?* t& W! K+ X4 M3 w/ p" @3 C
根据Cij在Cmin和Cmax之间的比例关系,确定对应的颜色的index,默认为线性映射。
# I; e8 `2 U. z, W也就是说,当制定了数值颜色向量(矩阵)C之后画图,图中颜色的使用范围会自动占满整个颜色范围!!!4 `4 }( H) Q# i3 \) P

* p9 W- x; h, r另外,fill中指定了某些点的颜色值,其他颜色值都是采用插值的方法确定。
. }) N3 a6 O% ]! k6 B! l) s) T7 L7 \
& u" J" {6 O9 J5 o
, H: x8 s  W# X1 s3  实例
+ H& `( M4 \5 J实例1:. H1 n5 R3 `/ D0 I! w
colormap([spring;summer;autumn;winter])%相当于自定义了一个256*3维的colormap  0 N! A1 L1 V8 ^, y
                                       %实际上spring,summer,autumn,winter1 {) c! N- f; Q
                                       %都是64*3维的colormap
0 _) B. P2 h% ex=[0 1 1 0];
% D; e0 k# b' |+ N: a9 ey=[0 0 1 1];                           %定义四个点 [0 0] [1 0] [1 1] [0 1]0 d: F  I  K* v4 ]
fill(x,y,[0 0.1 0.2 0.3]);             %定义四个点的C值   
3 g( P" \) h5 d7 ]- q                                       %则Cmin=0,Cmax=0.39 _! a) p) v$ U, J
colorbar;( H! ?/ ~5 e! }3 R! e% `7 ]
map=colormap;                          %map为256*3矩阵
( z. T0 V& [4 `' U
" p& b  G! }, h9 J
: h! o  q" z: ^1 r. C6 r  X& |结果如下:
: [8 w, I1 V$ N ; ?2 g" H6 J4 v
. g; M0 r- d  f& D8 I3 \8 `. A

) _  N4 y9 p" g实例2:
8 ^7 I6 f9 p# a# Q8 P
: R, E! W/ N0 X( s" A0 x  R%本例中颜色从[0 0 0] 变化到[1 1 0]
1 N8 s9 y4 {, k. Y* P# P%增加row_cmap的值,如变化到100,则可看到颜色的渐变,而非跳跃型变化。3 V1 y/ J/ g$ K# F# p' {
row_cmap = 15;  %定义色图矩阵的行数9 e' v/ ~. X& z. e
color_map=zeros(row_cmap,3);  %定义色图矩阵
+ ~2 [6 P+ h2 a* p5 _, W) Z. Scolor_r = 0:1/(row_cmap-1):1;
* b. T# N" M- b1 E4 dcolor_g = 0:1/(row_cmap-1):1;
8 ^# z& }* X4 h4 [) A- D! Pcolor_b = 0:1/(row_cmap-1):1;
1 z; I- ?! e! N* k* i: J  u) [3 p5 Xcolor_map(:,1) = color_r; + B3 w$ ]& O; y( j3 K4 [
color_map(:,2) = color_g;  [5 O; _* N5 E+ O8 b2 f, c
colormap(color_map);
3 W- E# e+ e6 S9 b% }2 E) ^9 X# Q+ m: Z, w) H9 Z
x=[0 1 1 0];
. w. {% {/ H# u9 by=[0 0 1 1];                           %定义四个点 [0 0] [1 0] [1 1] [0 1]3 c- z/ S+ X( x5 P6 U- J0 {- b  i. s3 X
fill(x,y,[0 0.1 0.2 0.3]);             %定义四个点的C值   
- q% j: _8 k$ @; _4 c! D- |                                       %则Cmin=0,Cmax=0.3/ z  d) G8 |( M' ^# h; _
colorbar;( J% b' y" b$ c- h* P
map=colormap;                          %map为15*3矩阵, `9 c5 G  [6 F8 N2 v$ o
colorbar;4 h; y' {  j# ^  Z: z0 p, E7 c% G
. j( t$ w- r. n& p
结果如下:, L; K# o* U- Q% }+ A
! R( w" l4 Z3 e7 x5 z  \0 J

- v0 n; w, ?$ n' W/ ^( ~, A! ?( L. z6 M# Z- Z( l7 q2 r* }# D$ M& j
( E$ {+ a) G. C* Y' k

( ?) e, L  P" W, l! Q# O) t6 D
5 }  ~. V6 F# n2 f' y; F, U. G: Q9 b( {

该用户从未签到

2#
发表于 2021-6-7 10:43 | 只看该作者
matlab 的 colormap 函数

该用户从未签到

3#
发表于 2021-6-7 13:35 | 只看该作者
matlab 的 colormap 函数

该用户从未签到

4#
发表于 2021-6-7 13:36 | 只看该作者
matlab 的 colormap 函数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-18 22:42 , Processed in 0.078125 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表