莖葉圖(Stem-and-Leaf display)又稱“枝葉圖”,由統計學家約翰托奇( Arthur Bowley)設計,它的思路是將數組中的數按位數進行比較,將數的大小基本不變或變化不大的位作為一個主干(莖),將變化大的位的數作為分枝(葉),列在主干的后面,這樣就可以清楚地看到每個主干后面的幾個數,每個數具體是多少。
莖葉圖是一個與直方圖相類似的特殊工具,但又與直方圖不同,莖葉圖保留原始資料的資訊,直方圖則失去原始資料的訊息。將莖葉圖莖和葉逆時針方向旋轉90度,實際上就是一個直方圖,可以從中統計出次數,計算出各數據段的頻率或百分比。從而可以看出分布是否與正態分布或單峰偏態分布逼近。
R語言中使用stem函數繪制莖葉圖。stem函數的語法格式如下:
stem(x, scale = 1, width = 80, atom = 1e-08)
下面使用例子來說明stem函數的具體使用方法:
某人對自己上班時間的開車速度進行了統計,統計12次的數據如下(km/h):
30,33,18,27,32,40,26,28,21,28,35,20
參數x是數值向量,用于繪制莖葉圖的數據。
v<-c(30,33,18,27,32,40,26,28,21,28,35,20)
stem(v)
繪制結果如下圖所示:
圖中位于“|”右邊的數字是1位數字構成的,繪制的莖葉圖默認0-4一組,5-9一組。則可以看出,位于[10,20)區間的有1個:18;位于[20,30)區間的有6個;位于[30,40)區間的有4個:30,32,33,35;位于[40,50)區間的有1個:40.
stem函數中的scale參數控制莖葉圖的長度,默認為1。
v<-c(30,33,18,27,32,40,26,28,21,28,35,20)
stem(v,scale=0.8)
sacle設置的越大,分莖越多,精度越高,如果你的scale較小,他甚至會自動幫你的數據做四舍五入(這樣會降低精度)
控制莖葉圖中葉子的寬度,如果為0,則只輸出該莖統計的數字個數。如果為10以內的數,則表示超過指定寬度的統計數量個數,下面的例子可以理解為,統計頻數比0多的數,多幾個就加幾。
這樣,我們很清楚的知道,10~20之間有1個,20~25之間有2個,25~30之間有4個......
當width設置的足夠大,就可以將所有的數字顯示全了,默認為100.
v<-c(30,33,18,27,32,40,26,28,21,28,35,20)
stem(v,scale=1,width=90)
新聞熱點
疑難解答