如果 v 是一個 n 維向量或矩陣,則
bar(v)就畫出高度依序為
v=[1 4 0 2 3 5];
bar(v);
axis( [ 0.2 6.8 0 6 ] )
如果 x 是一個維度和 v 一樣的向量或序列,則
bar(x, v)畫出和 bar(v) 一樣的長條圖,只是橫軸的標籤改成以
x = 10 * (4:9);
bar(x, v)
axis( [ 30 100 0 6] )
如果 A 是一個 m 乘 n 的矩陣,則 bar(A) 的意義是, 畫出 m*n 個長條圖,但是每一列上的 n 個元素所畫出的 n 個長條圖, 叢集成一個群組,總共有 m 組長條圖。例如
A = 10 * rand(5,3)如果 x 是一個 m 維向量或序列, 則 bar(x, A) 的意義就是用 x 的元素當作長條圖的橫軸標籤。 這個意義與前述之 bar(x, v) 相同。
bar(A)
如果不喜歡把每一列的資料以叢集的方式呈現,Matlab 還提供另一個可能: 以堆疊方式呈現。也就是說,A 矩陣中的每一列元素,依序堆疊成一個長條圖, 而總共只有 m 個長條圖。呈上例,試試看
bar(A, 'stacked')當然,bar(x, A, 'stacked') 這樣的指令還是可以用的。
前面所解說的 bar( ) 用法,全部可以改成 barh( )。 barh( ) 也是畫長條圖,只是變成了水平的橫條。那個 h 就是 horizontal 的縮寫。 要留意的是,barh(v) 所畫的長條圖,v1 對應最下面的圖, vn 對應最上面的圖。在邏輯上這是正確的,但是可能並不符合某些人的直覺。
習題
[ 17 10 6 5 7 ] [ 18 10 10 9 10 ] [ 19 8 9 4 9 ] [ 20 10 6 5 8 ] [ 21 6 6 5 7 ]請以學號為橫軸,畫出四次小考成績的叢集長條圖。
[ 17 10 6 5 7 ] [ 18 10 10 9 10 ] [ 19 8 9 4 9 ] [ 20 10 6 5 8 ] [ 21 6 6 5 7 ]請以小考的次數為橫軸,畫出五個學生成績的叢集長條圖。