標題: [隨寫] Note: MATLAB colormap
時間: Fri Apr 16 09:15:47 2010
contourf 之類的 color shading 圖
有兩個東西會混淆: colormap, caxis
colormap 是給定一個顏色矩陣
讓作圖的時候依據data的值是多少來填色
所以 hot, gray, hsv, winter, autumn, ...
這些其實是產生顏色矩陣的函數
例如有個顏色矩陣產生函數叫做 cmatrix
其色調是從黑色到白色
那麼
colormap cmatrix
作用等同於
colormapt(cmatrix(128))
cmatrix(128)所產生的東西是 [R,G,B]
其中 R,G,B 三個 element 都是從 0 到 1 的 column matrix
也就是 linspace(0,1,128)'
所以想使用任意色調來著色
只需自行產生色調矩陣
然後放進 colormap 即可
例如最高值是藍色 [0 0 1]
最低值是白色 [1 1 1] 的色調
可以用
cmatrix = [linspace(1,0,Nc);linspace(1,
colormap(cmatrix)
這樣就行了
其中 Nc 是想要分割出來的色段數
MATLAB內定值是 128
至於 caxis
是定義了 colormap 之後
自行調整 data 中哪個數字視為 colormap 的最高值或最低值
MATLAB內定是把 data 中的最高值
以 colormap 的最下面一個顏色來填
而 data 中的最低值則以第一個顏色來填
例如上面的 cmatrix
第一個顏色是白色 [1 1 1]
最後一個顏色是藍色 [0 0 1]
假如 contourf 的 Z data 是
[1 2 3 4;
5 6 7 8;
9 8 7 6;
5 4 3 2]
那麼在 9 對應到的位置就會填上藍色
在 1 的地方會填上白色
假如希望3以下的都用白色來填
7以上的都用藍色來填
則可以
caxis([3 7])
也就是說
沒下這道命令的話內定值是 caxis([1 9])
或者說是 caxis([min(min(Z)),max(max(Z))
沒有留言:
張貼留言