在本號前面的文章中介紹了R語言中繪製散點圖,折線圖,條形圖,餅圖和箱線圖的方法,有興趣的讀者關注本號後,可以往前看本號的所有文章,本文將介紹在R中繪製直方圖的方法。
直方圖概述
直方圖(Histogram)又稱柱狀圖,是由一系列高度不等的縱條紋或線段表示的數據分布情況。可以使用直方圖估計數據的概率分布情況。
在R語言中,可以使用hist()函數來繪製直方圖。
其使用的格式為:
下面以幾個例子來說明主要參數的含義及使用方法。
第一個例子
本例主要說明參數x,col,border,labels和ylim的使用方法。
x是一個向量,繪製直方圖所需的數據。舉例說明:繪製19名學生的身高頻率直方圖。
Height<-c(144,166,163,143,152,169,130,159,160,175,161,170,146,159,150,183,165,146,169)
hist(Height,col="lightblue",border="red",labels=TRUE,ylim=c(0,7.2))
結果如下圖:
這裡指定繪製直方圖所用到的數據是Height,即學生的身高,繪圖顏色col參數為lightblue,直方圖條的邊框border參數為紅色,顯示每個條的標籤(頻數)參數labels為TRUE,y軸的取值範圍ylim為0~7.2。
第二個例子
這個例子主要演示了breaks參數,freq參數,density參數和angle參數的含義及用法。
hist(Height,breaks=12,freq=FALSE,density=10,angle=60)
所繪圖形如下所示:
在本例中breaks參數是設置直方圖的斷點,主要有以下幾種情況:
可以是一個向量給出直方圖中每個區間的斷點;可以是一個函數用於計算每個斷點的向量;用於表示區間數的一個數字;一個字符串用於給出計算區間數所使用的算法;一個用於計算區間數的函數。
freq參數是邏輯變量,如果設置為TRUE,則直方圖的數據為頻數,若為FALSE,則為概率密度。當僅當breaks為等距,且為指定probability時,freq默認為TRUE。density參數是指陰影線的密度,即每英寸(2.54釐米)的線數。默認值為NULL值,意味著沒有陰影線,非正值也不會繪製陰影線。angle參數是設置陰影線的斜度,以逆時針角度給出,默認為45度。
第三個例子
這個例子演示了breaks的另外一種用法,關於breaks的含義,可以查看上面的說明。這裡breaks是用一個向量給出了直方圖的分隔點。
data <- c(rep(1, 10), rep(2, 5), rep(3, 6))
hist(data, breaks = c(0.5, 1.5, 2.5, 3.5))
繪圖結果如下:
關於直方圖的內容就說這麼多,希望對你有所幫助。如果你想系統學習R語言,可以關注本號,本號將定期更新R語言方面的文章,內容由淺入深,由基本語法到具體的數據分析應用。