1. 程式人生 > >matlab中的colorbar用法(顯示色階的顏色欄)

matlab中的colorbar用法(顯示色階的顏色欄)

原文

matlab畫平面分佈圖時colorbar的設定是非常重要的,好的colorbar不僅使影象更美觀,而且能夠使人更容易捕捉圖上傳遞的資訊。用過matlab的同學都知道matlab預設的colormap是jet, 也就是你畫完圖後輸入“colorbar” 它所顯示出來的顏色。此外,matlab還自帶了很多colormap, 如hsv, autumn, bone, colorcube等等。我們直接在命令視窗輸入例如"colormap(hsv)" 就可以是平面圖的顏色顯示相應的colormap。

下面教大家如何自定義自己想要的colormap,方法十分簡單。

以中國海的海面溫度圖為例:

matlab如何自定義colorbar

這是一張有m_pcolor畫出來的圖,之後colormap是matlab預設的jet(即直接輸入命令‘colorbar’顯示的colormap)。

如果我們這是在命令視窗輸入‘colormap(hsv)’,則會變成下面這張圖:

matlab如何自定義colorbar

(請忽檢視標題,截圖很麻煩,見諒)

如果我們這是想定義一種新的colormap,顏色從赤,橙,白,藍,紫依次傳遞的話(如下圖),應該怎麼做?

matlab如何自定義colorbar

這就要用到matlab的colormap Editor了。

如下圖:點選figrue視窗的Edit-colormap

matlab如何自定義colorbar

出現colormap Editor視窗:

matlab如何自定義colorbar

我們可以利用這個視窗直接設定自定義colormap。

colormap Editor中有是一個色標尺,色標尺下方有一些滑塊,其中兩端的矩形滑塊是固定的,不能刪除;而中間的矩形+三角形滑塊是可以新增,刪除,或滑動的。在色標尺低端單擊滑鼠左鍵新增,選擇某塊滑塊按Deletei鍵刪除,滑鼠按住某個滑塊可左右滑動。

為了達到上述所說的“顏色從赤,橙,白,藍,紫依次傳遞”的效果,我們先把中間的兩個矩形+三角形滑塊刪除,如下圖:

matlab如何自定義colorbar

由於上一張圖colormap的兩端都是紅色,所以中間兩塊滑塊刪除後整個colormap只剩下紅色一種顏色了。

我們先從白色新增起,標尺上一共有64個格,為了左右平衡,我們先挑中間兩格新增白色,具體步驟為:

1、點選標尺中間色格的下方,出現滑塊(如下圖)。

matlab如何自定義colorbar

2、雙擊出現的滑塊,出現顏色選擇視窗,選擇白色(如下圖)。

matlab如何自定義colorbar

選完後圖像就變成下面這樣了:

matlab如何自定義colorbar

相同的方法選擇“赤,橙,藍,紫”,如下圖:

matlab如何自定義colorbar

但這時我們發現colormap並不能如我們所願,因為中間出現了黃色跟綠色。我們注意在colormap Editor中有個Interpolating colorspace選項,由於剛剛我們是以colormap(hsv)為根本的,所以這裡的顏色插值方式是hsv的,我們這是應該選擇RGB。如下圖:

matlab如何自定義colorbar

好了,大功告成。

下面就是要儲存自己設定的colormap以便今後畫圖時可以直接用了。

在命令傳控輸入:

mycolor=colormap;%mycolor名稱任意

save mycolor mycolor;

下次畫圖時,只要先load mycolor; 再輸入colormap(mycolor) 就可以直接用這個colorbar了。

還有一種colorbar不是漸變的,如下圖:

matlab如何自定義colorbar

這種colorbar的設定方式也大同小異。圖中colorbar有5中顏色,那麼我們就在colormap Editor中將頭五種顏色設成圖中顏色,再將其餘顏色設成白色(不一定白色,其它顏色也可,主要是為了方便辨認)

matlab如何自定義colorbar

這是我們在命令視窗中輸入“colormap”,就會出現一個64*3的陣列。

matlab如何自定義colorbar

注意的陣列前五行就代表上面5種顏色,其餘[1 1 1]代表白色。這是隻要把前5行復製出來,寫入新陣列中。

matlab如何自定義colorbar

再“save mycolor5 mycolor1”儲存起來。這是在命令視窗輸入“colormap(mycolor5)”就出現下圖了:

matlab如何自定義colorbar