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

matlab 的 colormap 函数

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
; k& X5 C3 E7 {& L3 d
colormap简介
& |2 v+ S" ]4 Z# P4 {matlab中,每个figure都有(而且仅有)一个colormap,翻译过来就是色图。! d3 R. W- I2 J/ K

! G  q5 a7 s! s+ ~  A) k$ R
$ V% \2 x! O; F/ E! U3 Tcolormap(map) 用map矩阵映射当前图形的色图。
6 m' m1 ?, p* C+ X6 Q5 ocolormap('default') 默认的设置是 JET. % I% X; L; t. j$ R* Z
map= colormap(获得当前色图矩阵. - F  w8 R3 e: x/ S) h' E- y2 K
colormap(ax,...) 应用色图到ax坐标对应的图形,而非当前图形。
6 e0 E4 `. t) ^2 L' m2 g3 O' Q6 m, f+ V" {3 l/ o
colormap实际上是一个m × 3的矩阵,每一行的3个值都为0-1之间数,分别代表颜色组成的rgb值,如[0 0 1]代表蓝色。- {# g$ i8 E% z0 G
/ M/ b9 e7 w- n
系统自带了一些colormap,如:winter、autumn等。输入winter,就可以看到它是一个64x3的矩阵。5 z, c! ], ?1 D9 F. E  c  S
4 o$ r* S& v( M6 c7 Y
用户可以自定义自己的colormap,而且不一定是64维的。
, _6 q* Q) s/ M3 L/ J
. G1 w4 v* h5 T6 B, r* ~系统自带的colormap:! F* K& m3 c# q5 w6 L; p( a
8 l, ]1 j; S# x$ c

8 ]  l1 [5 F+ \
* Y3 @+ ]* p. s- ]5 @
0 m- r1 s; j% x. l' g2 @2 colormap用法8 c. N9 e5 Q5 g& l! h/ [
那么颜色在fill或patch中到底是如何显示的呢?( h3 _) s) t' o8 z
' @# P/ ~& a  b* K+ S5 M! {
本质上,是把具体的颜色变成colormap中的相应index,也就是行数。
7 v2 U. N0 ?$ I- B' A3 t2 B* K/ o8 K7 H; r. W
这个过程叫做换算映射:将指定的数值颜色向量(矩阵)C,映射到对应的颜色。
. [5 |: _* L' z* W& z" N  j/ I6 j0 n9 ~* e( q: j2 [. z
在matlab中,图形窗的属性'CdataMapping’缺省设置值为'scaled',也就是线性映射。2 N" p5 L4 q$ G1 ^, x. P! L

6 n4 l, L7 F) d) r! B: H7 I映射过程如下:
: c, t1 X0 I/ L4 P, n
! N3 ~% m; U, k首先,需要根据caxis取得Cmin和Cmax两个变量(默认值为0和1),画图时如果指定了数值颜色向量(矩阵)C,Cmin和Cmax自动设置为C中的最大值和最小值。当你想控制时,可以自定义。比如将Cmax减小,这样将把所有大于Cmax的C值,全部都映射到同一个颜色(colormap中index最大的行代表的颜色)。
7 t. n% z" U- Z, r" o根据Cij在Cmin和Cmax之间的比例关系,确定对应的颜色的index,默认为线性映射。 ! K  ~+ P; U" l1 J! o
也就是说,当制定了数值颜色向量(矩阵)C之后画图,图中颜色的使用范围会自动占满整个颜色范围!!!4 r' N& j- M2 s
2 `0 B) v& e2 ^  g
另外,fill中指定了某些点的颜色值,其他颜色值都是采用插值的方法确定。% h' v/ Q+ O# _0 J! u) o0 x

" D/ D8 |: M% ?& c& Y7 K
- X: A" L1 Q5 e- O" Q3  实例
' [( Z7 Z  h! G! b实例1:
7 S1 }, m% `1 kcolormap([spring;summer;autumn;winter])%相当于自定义了一个256*3维的colormap  8 G0 ]! G3 k7 q* V4 \" r" z- e, d
                                       %实际上spring,summer,autumn,winter
) _/ g0 G; G; G- B7 g" g0 H/ o& O2 y                                       %都是64*3维的colormap
6 @. G  ^5 b1 z4 w# e' f" c- P% n& r' Ax=[0 1 1 0];: T, p0 _* o; f" K$ B7 v
y=[0 0 1 1];                           %定义四个点 [0 0] [1 0] [1 1] [0 1]5 Y! ?, c; b+ d; j5 ^0 Q
fill(x,y,[0 0.1 0.2 0.3]);             %定义四个点的C值    , {: Z" K  `$ h' M
                                       %则Cmin=0,Cmax=0.3
3 \1 y* f, k. |6 F4 bcolorbar;4 o+ m' v) G; x0 r" K# L
map=colormap;                          %map为256*3矩阵
2 l' }" G  ~  [3 M8 n* r" K$ u) {. `8 Q3 `0 }4 [+ ~
- h4 Y" N" _& v0 A* Y. ]
结果如下:6 k' ^- y5 [" r

" B# ]! p+ d- A' \; A. v! C
7 Q. T$ d& B9 Q" s) [% ?0 r1 n
* {; l4 I  @! ?6 t6 v! ~2 P实例2:
3 K$ E1 O3 q" ^' K7 Y  e0 Q* f6 c* J7 B0 x, |
%本例中颜色从[0 0 0] 变化到[1 1 0]
- I" v5 `! O6 q%增加row_cmap的值,如变化到100,则可看到颜色的渐变,而非跳跃型变化。. Y% J3 n% S, w& Z) o0 W
row_cmap = 15;  %定义色图矩阵的行数) k- r  p! t) u. J
color_map=zeros(row_cmap,3);  %定义色图矩阵" F+ R; D! c2 B9 o2 l) g
color_r = 0:1/(row_cmap-1):1;
4 s5 ~# F: {9 p* \color_g = 0:1/(row_cmap-1):1;5 ]+ S6 q3 R9 ]0 I/ h7 \
color_b = 0:1/(row_cmap-1):1;! w( W& U* V* Z+ b9 a
color_map(:,1) = color_r;
) `7 D( A% S5 k# ^( kcolor_map(:,2) = color_g;
# w/ l  J$ v8 i5 P- e' bcolormap(color_map);6 T9 T- I7 ~; D: A% ]) S& m

) t+ ?% _  I  }x=[0 1 1 0];
  k; o3 M& L) T: y" v6 Ey=[0 0 1 1];                           %定义四个点 [0 0] [1 0] [1 1] [0 1]
  [. a; L6 M7 w, F5 ~fill(x,y,[0 0.1 0.2 0.3]);             %定义四个点的C值   
9 E8 S! s4 g0 [- K7 y                                       %则Cmin=0,Cmax=0.3
# t! s0 h9 W6 `colorbar;
5 f4 B; k* |: R! O( I" T- Smap=colormap;                          %map为15*3矩阵! ^/ J5 P% A  y' Q" S
colorbar;0 w9 D- R7 p# X2 c4 g
* v! B- ^. S6 \
结果如下:' V' a( W8 F/ t  ?% H+ I- k1 k& g
' F- D* h" r3 u, D' M0 q) J

/ \% `1 Y4 k% ^
( q) y1 c3 w+ t# M+ U$ K3 z+ N/ s8 Q& w

, B) d0 c6 L# Z
2 ?' p' M& A1 Q, F7 C0 j
8 k$ \! L+ c1 `/ Y

该用户从未签到

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-10-5 12:13 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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